Wordpress 插件开发 - 文件上传:如何允许指定的文件类型?

     2023-05-09     152

关键词:

【中文标题】Wordpress 插件开发 - 文件上传:如何允许指定的文件类型?【英文标题】:Wordpress plugin development - File upload: How to allow specified file types? 【发布时间】:2019-03-16 01:45:04 【问题描述】:

这是允许将图像上传到网站根目录的代码。是管理区的子菜单页面,调用一个函数,函数体如下:

 <div class="wrap">
<h2>Upload files</h2><br><br><br>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" class="button" name="fileToUpload" id="fileToUpload">
<input type="submit" class="button button-primary" value="Upload File" name="submit">
</form>
</div>
<?php
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) 
    $target_dir = get_home_path();//wp_upload_dir();
    $target_file = get_home_path() . '/' . basename($_FILES["fileToUpload"]["name"]);
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) 
        ?>
        <div id="setting-error-settings_updated" class="updated settings-error notice is-dismissible">
        <strong>File is an image</strong>
        </div>
        <?php
        $uploadOk = 1;
     else 
         ?>
        <div id="setting-error-settings_updated" class="updated settings-error notice is-dismissible">
        <strong>File is not an image</strong>
        </div>
        <?php
        $uploadOk = 0;
    
    // Check if file already exists
    if (file_exists($target_file)) 
         ?>
        <div id="setting-error-settings_updated" class="updated settings-error notice is-dismissible">
        <strong>File already exists.</strong>
        </div>
        <?php
        $uploadOk = 0;
    
    // Check file size
    if ($_FILES["fileToUpload"]["size"] > 500000) 
          ?>
        <div id="setting-error-settings_updated" class="updated settings-error notice is-dismissible">
        <strong>Your file is too large.</strong>
        </div>
        <?php
        $uploadOk = 0;
    
    // Allow certain file formats
    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != 
        "jpeg"
    && $imageFileType != "gif" ) 
          ?>
        <div id="setting-error-settings_updated" class="updated settings-error notice is-dismissible">
        <strong>Sorry, only JPG, JPEG, PNG & GIF files are allowed.</strong>
        </div>
        <?php
        $uploadOk = 0;
    
    // Check if $uploadOk is set to 0 by an error
    if ($uploadOk == 0) 
          ?>
        <div id="setting-error-settings_updated" class="updated settings-error notice is-dismissible">
        <strong>Sorry, your file was not uploaded.</strong>
        </div>
        <?php
        // if everything is ok, try to upload file
     else 
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))                  
             ?>
        <div id="setting-error-settings_updated" class="updated settings-error notice is-dismissible">
        <strong>The file has been uploaded.</strong>
        </div>
        <?php

         else 
            echo "Sorry, there was an error uploading your file.";
        
    


我想允许这些文件类型而不是图像:.xml、.rar、.zip、.txt。我尝试使用函数getfilesize() 更改函数getimagesize() 并更改// Allow certain file formats 注释下方的文件扩展名。但它不起作用。您知道我应该怎么做才能允许上传这些文件类型而不是当前允许上传的文件类型吗?

【问题讨论】:

【参考方案1】:

基本上...

$allowed_extenstions=array('jpg','png','pdf','zip');

    $ext = pathinfo(esc_attr($_FILES['file']['name']), PATHINFO_EXTENSION);
            if (!in_array($ext,$allowed_learning_extenstions))
            
                echo "invalid_file_type";
                die();
            

`

【讨论】:

谢谢,我会试试的。但是如果 $check 是由 getimagesize() 设置的,如果文件不是图片,如何获取 $check 呢? ***.com/questions/15408125/…。应该可以帮助你解决这个问题。

如何开发一个wordpress插件

参考技术A1首先安装wordpress环境,安装成功后访问如下2在wp-content\plugins目录下新建自己要创建的插件名称,这个名称需要是唯一的,3编辑mytest_helloword.php文件如下,可以看出来我们的插件的作用是修改文章中的Welcome为haha:4... 查看详情

如何在wordpress插件中添加媒体上传器[重复]

】如何在wordpress插件中添加媒体上传器[重复]【英文标题】:Howtoaddthemediauploaderinwordpressplugin[duplicate]【发布时间】:2013-07-1404:23:13【问题描述】:我阅读了一些关于如何将媒体上传器集成到wordpress插件中的教程。我根据教程做媒... 查看详情

如何允许单个 Wordpress 站点接受我的 .ttf 文件上传?

】如何允许单个Wordpress站点接受我的.ttf文件上传?【英文标题】:HowdoIallowasingleWordpresssitetoacceptmy.ttffileupload?【发布时间】:2017-05-3018:55:50【问题描述】:我正在使用Wordpress的字体管理器插件。它有一个很好的选项来上传我已经... 查看详情

如何开发一个wordpress插件

工具:文本编辑器、wordpress源码、浏览器、apachemysql环境步骤:1.首先安装wordpress环境,安装成功后访问如下。2.在wp-content\\plugins目录下新建自己要创建的插件名称,这个名称需要是唯一的,如下图:3.编辑mytest_helloword.php文件如下... 查看详情

wordpress上传图片时重命名--修改插件时遇到的一些问题

wordpress是用php语言开发的博客平台,它扩展性强,容易扩展,很适合拿来做二次开发。1,问题由来本周五,我在浏览公司的网站(基于wordpress开发)时发现,网站首页上有两篇文章的缩略图重复了,于是我进入网站后台检查,... 查看详情

WordPress插件上传安装

】WordPress插件上传安装【英文标题】:WordPressPluginuploadtoinstall【发布时间】:2020-07-0923:52:32【问题描述】:我正在使用带有PHP7.2、MySql和Apache2的LinuxMint19.1。我在我的LocalHost中安装了WordPress5.3.2。现在,当我尝试上传插件ZIP文件进... 查看详情

Wordpress:在管理员选项页面中上传图片

】Wordpress:在管理员选项页面中上传图片【英文标题】:Wordpress:UploadImageinAdminOptionsPage【发布时间】:2014-05-1710:56:40【问题描述】:我正在开发我的第一个wordpress插件。它只需要允许用户更改自定义模板中的徽标和更改自定义模... 查看详情

使用 WordPress 插件从 pdf 创建 jpgs

】使用WordPress插件从pdf创建jpgs【英文标题】:CreatejpgsfrompdfwithWordPressplugin【发布时间】:2015-10-1015:40:12【问题描述】:我正在开发一个插件,它可以从上传的pdf文件的每一页创建jpgs。我使用wp_handle_upload操作并检查mime类型是否... 查看详情

wordpress 插件开发添加到 htaccess 文件中

】wordpress插件开发添加到htaccess文件中【英文标题】:wordpressplugindevelopmenttoaddinhtaccessfile【发布时间】:2018-01-0323:25:55【问题描述】:我正在wordpress中开发一个插件,它需要添加htaccess代码我使用insert_with_markers它正在写入htaccess... 查看详情

WordPress 插件开发 - 如何使用 JQuery / JavaScript?

】WordPress插件开发-如何使用JQuery/JavaScript?【英文标题】:WordPressPluginDevelopment-HowtouseJQuery/JavaScript?【发布时间】:2013-05-2506:59:31【问题描述】:刚开始为WordPress开发插件,想在插件管理界面中使用一些JQuery。如何正确包含和调... 查看详情

WordPress:如何在上传时使用当前日期重命名图像?

】WordPress:如何在上传时使用当前日期重命名图像?【英文标题】:WordPress:Howtorenameimageduringuploadwithcurrentdate?【发布时间】:2021-04-0202:02:09【问题描述】:有没有插件可以在上传到wordpress库的时候加上当前日期和文件名?Example:N... 查看详情

wordpress中怎么添加百度自动推送代码?创建完后上传到哪里?每个php模板

WordPress中怎么添加百度自动推送代码?创建完后上传到哪里?每个PHP模板页文件是指每个PHP文件里都要添加么?如果站长使用PHP语言开发的网站,可以按以下步骤操作:1、创建名为“baidu_js_push.php”的文件,文件内容是上述自动... 查看详情

如何在 wordpress 插件开发中列出表格?

】如何在wordpress插件开发中列出表格?【英文标题】:Howtolisttablesinwordpressplugindevelopment?【发布时间】:2014-08-2608:56:04【问题描述】:我想在我的插件开发中显示所有表名。我知道如何在核心PHP中做到这一点。我正在尝试这样:$... 查看详情

如何将引导 css 添加到我的 Wordpress 插件

】如何将引导css添加到我的Wordpress插件【英文标题】:HowtoaddbootstrapcsstomyWordpressplugin【发布时间】:2016-10-3007:44:37【问题描述】:我正在开发一个Wordpress插件。我想知道如何将BootstrapCSS文件集成到我的插件中?【问题讨论】:【... 查看详情

wordpress 插件开发 - 使用图像 - 找不到路径

】wordpress插件开发-使用图像-找不到路径【英文标题】:wordpressplugindevelopment-usingimages-pathnotfound【发布时间】:2011-03-0410:41:19【问题描述】:我正在为wordpress编写插件,但在处理图像时遇到了问题。如果我在wp-content/plugins/my-plugin... 查看详情

如何在不在线公开的情况下将文件存储在 Wordpress 插件中?

】如何在不在线公开的情况下将文件存储在Wordpress插件中?【英文标题】:HowtostoreafileinaWordpressPluginwithoutexposingitonline?【发布时间】:2021-04-2018:28:39【问题描述】:我正在开发一个Wordpress插件,它通过Google服务帐户与GoogleCalendarA... 查看详情

如何在 Wordpress 插件中使用 ReactJS

】如何在Wordpress插件中使用ReactJS【英文标题】:HowToUseReactJSinWordpressPlugin【发布时间】:2016-02-1610:08:44【问题描述】:我在Wordpress插件中使用ReactJs时遇到问题。我正在使用ReactJs开发一个Wordpress插件。谷歌搜索仅在Wordpress主题中... 查看详情

如何确定一个网站是用wordpress开发的

问题如何确定一个网站是用Wordpress开发的?答案打开网页的源码页,可以通过搜索功能查找一下是否源码中包含wp-content。如果有这个文字,说明此网站基本就是使用wordpress程序创建的网站,因为wp-content是wordpress建站程序的一个... 查看详情