2

根据PHP.net 文档,如果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 上传的文件,从而确保此操作的安全性。

编辑:是的,就是这样。

4

3 回答 3

2

也许它与您访问的文件夹的权限有关

于 2013-03-10T12:37:19.403 回答
1

它的局限性在于move_uploaded_file:它只能处理由 PHP 上传的图像。由于我要移动的图像仅由 PHP 创建,因此不会移动它。

我只是将命令替换为copy.

于 2013-03-10T23:22:17.903 回答
0

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

于 2013-03-10T12:43:24.500 回答