最近、ローカルの 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 uploaded. Try again."); に至るので、おそらく tmp ファイルとは何の関係もありませんが、まだアップロードされていません。そして、ユーザーの members ディレクトリと $id ディレクトリは両方とも 777 に設定されているため、文字通り何が起こっているのかわかりません。これは HTML フォームではなく、IOS クライアントからのものです