我最近刚刚将我的本地 MAMP 安装移动到我的实时 Ubuntu EC2 服务器上,而且我在访问文件上传时遇到了麻烦。一切看起来都应该可以正常工作,但我不知道为什么不行。我在 php.ini 中最大上传了 5MB,这对于上传照片应该足够了,所以我知道不是这样。没有更改默认目录,但我想也许我应该将域作为具有 2 个其他域的 Apache 虚拟主机上的域?我不想在我的 php 脚本中走这条路:
ini_set('upload_tmp_dir','/your-home-www/tmp/');
但是,如果虚拟主机绝对有必要处理文件的话。我很确定这不是我的代码,因为它可以在我的本地主机 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,"ERROR: File not upload. Try again.");,所以它可能与 tmp 文件无关,但它仍然没有上传。并且用户的 members 目录和 $id 目录都设置为 777,所以我真的不知道发生了什么。这是来自 IOS 客户端,而不是 html 表单