无法访问新服务器上的文件上载

时间:2012-08-31 21:13:11

标签: php ios ubuntu apache2

我最近刚将我的本地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表单

1 个答案:

答案 0 :(得分:0)

您必须使用标准PHP函数

move_uploaded_file()

将上传的文件移动到其位置。