【问题标题】:File Upload Not Uploading Files on File Extension Check文件上传未在文件扩展名检查中上传文件
【发布时间】:2012-09-16 02:39:28
【问题描述】:

在检查上传图片的文件扩展名时,我的代码总是返回false,导致图片没有上传。上传的图片有适当的扩展名。

我的问题是为什么它不接受文件?如果勾选了文件,则上传成功。

仅供参考,还有其他检查,所以不要担心这是我唯一的安全检查。只是这就是导致所有问题的原因。

$name = $_FILES['file']['name'];
$tmp_name = $_FILES['file']['tmp_name'];
$pre_ext = explode(".", $tmp_name);
$ext = end($pre_ext);   

if (getimagesize($tmp_name) != false)
{
    //below is the check that is causing all the problems
    if ($ext == "PNG" || $ext == "png" || $ext == "jpg" || $ext == "JPG" || $ext == "jpeg" || $ext == "JPEG" || $ext == "GIF" || $ext == "gif"){
        if ($_FILES['file']['error'] == 0)      
        {
            move_uploaded_file($tmp_name, 'post_images/' . $name);
        }       
    }   
}

【问题讨论】:

    标签: php file-upload


    【解决方案1】:
    $name = $_FILES['file']['name'];
    $tmp_name = $_FILES['file']['tmp_name'];
    $pre_ext = explode(".", $name);
    

    应该修复它。我建议检查文件本身,而不仅仅是扩展名。 tmp_name 是您服务器上的临时名称,通常类似于 /tmp/random8y7ofad9

    【讨论】:

    • 太棒了,欣赏。如果我有后续问题,并且这与我当前的问题无关,如果我不使用move_uploaded_file(),图像在 tmp 文件夹中的持续时间是多久?
    • 脚本运行完毕后会被删除。所以以后想用的话,就得用move_uploaded_file或者copy复制。
    猜你喜欢
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    相关资源
    最近更新 更多