如何清理$_FILES[‘HAQ_SLIDER’]字段

时间:2019-04-06 作者:Husain Ahmed

我有一个功能

function haqSliderHandleUpload() {
    global $haq_settings, $haqSliderImage;

    //  upload the image
    $sliderfile = $_FILES[\'haq_slider\'];
    $upload = wp_handle_upload($sliderfile, 0);
    extract($upload);
    $uploadDirPath = str_replace(basename($file), \'\', $url);
    list($imageWidth, $imageHeight) = getimagesize($file);     }
我想清理此字段$sliderfile=$\\u文件[\'haq\\u slider\'];我该怎么做

1 个回复
SO网友:Alexander Holsgrove

您不能说这段代码在哪里运行,无论是针对用户还是针对管理员。这里有一些技巧,主要是从这篇文章中获得的Wordfence.

您可以运行的第一个检查是current_user_can 要查看是否允许当前用户使用上载文件,请执行以下操作:

if(current_user_can(\'upload_files\')) { ....
接下来您可以使用wp_check_filetype 看看它是否是有效的扩展名。

$fileInfo = wp_check_filetype(basename($_FILES[\'haq_slider\'][\'name\']));
if (!empty($fileInfo[\'ext\'])) {
   // This file is valid
} else {
   // Invalid file
}
Wordfence建议的最后一个测试是调用PHPsgetimagesize 将返回FALSE 如果无法读取有效的图像文件。

if (!@getimagesize($_FILES[\'haq_slider\'][\'tmp_name\']))
   wp_die(__(\'An invalid image was supplied.\'));

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。