根据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上传的文件来确保此操作的安全性。
编辑:是的,就是这样。
答案 0 :(得分:2)
可能与您访问的文件夹的权限有关
答案 1 :(得分:1)
这是move_uploaded_file
的限制:它只能处理PHP上传的图像。由于我想移动的图像仅由PHP创建,因此不会移动它。
我只是用copy
替换了命令。
答案 2 :(得分:0)
它不太可能在没有任何错误的情况下失败。你检查了错误日志吗?