无法在新服务器上访问文件上传
问题描述:
我刚刚将本地MAMP安装移到了我的实时Ubuntu EC2服务器上,而且我有一个访问文件上传时间的恶魔。一切看起来应该是行得通的,但我不知道为什么它不是。我在php.ini中有5MB的最大上传量,这应该足够上传照片,所以我知道不是这样。没有改变默认的目录,但想到也许我应该把它作为与另外两个域名的Apache虚拟主机上的域名?我不想去我的PHP脚本这条路线:无法在新服务器上访问文件上传
ini_set('upload_tmp_dir','/your-home-www/tmp/');
但如果这是绝对necesary虚拟主机处理的文件。我敢肯定,这不是我的代码,因为它完美的作品在我的本地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 uploaded。Try again。”);,所以也许它与tmp文件无关,但它仍然没有上传。成员目录和用户的$ id目录都设置为777,所以我几乎不知道发生了什么。这是从一个IOS客户端来,而不是HTML形式
答
您必须使用标准的PHP函数
move_uploaded_file()
已上载的文件移动到它的位置。
你不应该使用PHP的'move_uploaded_file()'函数吗? – 2012-08-31 21:15:53
@ H2CO3你是对的。我绝对愚蠢的这个问题,这就是它在我的本地服务器,$ place_file = move_uploaded_file($ fileTmpLoc,“members/$ id /".$ newName);。但是当我搞乱它时,试图让它起作用,我改变了它,然后将目录更改为777.它现在工作完美无瑕。我会在“回答你的问题”一节中写下这些内容,但我觉得你应该得到信任,我不知道如何在这些评论中给你。 –
我做了这个答案,你可以接受和upvote它,如果它的帮助。谢谢! – 2012-08-31 21:34:35