2012-08-31 83 views
0

我刚刚将本地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形式

+0

你不应该使用PHP的'move_uploaded_file()'函数吗? – 2012-08-31 21:15:53

+0

@ H2CO3你是对的。我绝对愚蠢的这个问题,这就是它在我的本地服务器,$ place_file = move_uploaded_file($ fileTmpLoc,“members/$ id /".$ newName);。但是当我搞乱它时,试图让它起作用,我改变了它,然后将目录更改为777.它现在工作完美无瑕。我会在“回答你的问题”一节中写下这些内容,但我觉得你应该得到信任,我不知道如何在这些评论中给你。 –

+0

我做了这个答案,你可以接受和upvote它,如果它的帮助。谢谢! – 2012-08-31 21:34:35

回答

0

您必须使用标准的PHP函数

move_uploaded_file() 

已上载的文件移动到它的位置。

相关问题