我最近刚将我的本地MAMP安装移动到我的实时Ubuntu EC2服务器上,而且我有一段时间访问文件上传。一切看起来应该工作正常,但我不知道为什么不是。我在php.ini中有一个5MB的最大上传,这应该足以上传照片,所以我知道不是这样。没有更改默认目录,但是我想也许我应该作为具有2个其他域的Apache虚拟主机上的域?我不想在我的php脚本中使用这条路线:
ini_set('upload_tmp_dir','/your-home-www/tmp/');
但是,如果虚拟主机处理文件是绝对必要的。我很确定这不是我的代码,因为它在我的localhost MAMP安装上运行完美,但是如果它有帮助的话,这里是处理照片的代码片段:
$fileTmpLoc = $photo["tmp_name"];
$fileSize = $photo["size"];
if (!$fileTmpLoc) { // if file not chosen
sendResponse(404,"ERROR: Photo not sent.");
exit;
} else if($fileSize > 5242880) { // if file size is larger than 5 Megabytes
unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder
sendResponse(413, "ERROR: Your file was larger than 5 Megabytes in size.");
exit;
} else {
$newName = "image01.jpg";
$moveResult = copy($fileTmpLoc, "members/$id/".$newName);
if ($moveResult != true) {
@unlink($fileTmpLoc);
sendResponse(404,"ERROR: File not uploaded. Try again.");
exit;
}
....
}
现在,它一直向下发送sendResponse(404,“错误:文件未上传。再试一次。”);所以它可能与tmp文件无关,但它仍然没有上传。并且用户的成员目录和$ id目录都设置为777,所以我完全不知道发生了什么。这来自IOS客户端,而不是html表单
答案 0 :(得分:0)
您必须使用标准PHP函数
move_uploaded_file()
将上传的文件移动到其位置。