move_uploaded_file失败 - 没有错误消息

时间:2013-03-10 12:31:34

标签: php file-upload

根据PHP.net documentation,如果move_uploaded_file失败而没有错误,那是因为它无法打开原始文件,但据我所知,该文件存在且可由代码访问。有谁知道造成这个问题的原因是什么?

这是命令:

    if(!move_uploaded_file($file["tmp_name"],
            SITE_ROOT."/../static/images/photos/tmp/".$fileName.$fileExt)) {
        throw new Exception("ERROR: There was a serious server problem uploading the image :(");
    } else {
        return true;
    }

这是创建$ newImage的地方:

if(imagejpeg($img_dst, sys_get_temp_dir()."/tmp.jpg", 100)) {    
    $newImage["name"] = "tmp.jpg";
    $newImage['tmp_name'] = sys_get_temp_dir()."/tmp.jpg";
    $newImage['error'] = 0;
    $newImage['type'] = "image/jpeg";
    $newImage['size'] = filesize(sys_get_temp_dir()."/tmp.jpg");

我甚至可以在系统的临时目录中查看该文件,但即使filesize()可以看到它,move_uploaded_file似乎也有问题。

日志文件为空(除了MIME警告:Cannot get media type from 'x-mapp-php5')。任何人都知道发生了什么事?


编辑:我想知道它是否与此有关? (来自文档。)

  

move_uploaded_file()通过仅允许移动通过PHP上传的文件来确保此操作的安全性。

编辑:是的,就是这样。

3 个答案:

答案 0 :(得分:2)

可能与您访问的文件夹的权限有关

答案 1 :(得分:1)

这是move_uploaded_file的限制:它只能处理PHP上传的图像。由于我想移动的图像仅由PHP创建,因此不会移动它。

我只是用copy替换了命令。

答案 2 :(得分:0)

它不太可能在没有任何错误的情况下失败。你检查了错误日志吗?