※ ChatGPTを利用し、要約された質問です(原文:ファイルのアップロードについて)
ファイルのアップロードについて
このQ&Aのポイント
phpのmove_uploaded_fileを使用してアップロードをしようと思うのですがアップロードが出来ません。
ローカル環境のwindowsでのアップロードは行えるがlinuxでは失敗してしまいます。
move_uploaded_fileからはエラーは出力されていません。そもそもmove_uploaded_fileが成功しているのになんでアップロードされていないのか分かりません。
phpのmove_uploaded_fileを使用してアップロードをしようと思うのですがアップロードが出来ません。
状況は
ローカル環境のwindowsでのアップロードは行えるがlinuxでは失敗してしまいます。
move_uploaded_fileからはエラーは出力されていません
そもそもmove_uploaded_fileが成功しているのになんでアップロードされていないのか分かりません。
//■HTML
<form name="form1" method="post" action="upload.php" ENCTYPE="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="10485760" />
<table class="frm" id="tbl">
<tr><th>ファイル1<div id="image"></div></th>
<td>
画像<input id="img_1" type="file" name="image[]" class="fname" onChange=imageChange(this); /><br />
</td></tr>
<tr>
<th>ファイル2<div id="image"></div></th>
<td>
画像<input id="img_2" type="file" name="image[]" class="fname" onChange=imageChange(this); /><br />
</td> </tr>
</table>
</form>
//■phpで以下のコードを実行すると
oreach ($_FILES["image"]["error"] as $key => $error) { //複数のファイルをアプロード
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["image"]["tmp_name"][$key]; //テンポラリファイルパス
$name = $_FILES["image"]["name"][$key]; //アップロードファイル名
$size = $_FILES["image"]["size"][$key]; //アップロードファイルサイズ
$ermsg = $_FILES['image']['error'][$key]; //エラーメッセージ
echo "アップロードファイル名".$name."\n" ;
echo "アップロードファイルsize" .$size ."\n" ;
echo "errmsg= .$ermsg."\n" ;
// ファイルアップロード
$cnt++;
if ( move_uploaded_file($tmp_name, "../1/33/.$cnt."2upload.jpg
")){ //ファイルアップロード
echo "アップロード成功 .$ermsg."\n" ;
echo " テンポラリファイル="$tmp_name."\n";
echo " アップロードファイル="$dir_img."/".$cnt.UPLOAD_FILE_NAME."\n";
} else {
echo 1;
error_log("upload error! \n", 3, MATCHING_ERROR_LOG);
exit;
}
}
}
exit;
■結果
アップロードファイル名thum6.jpg
アップロードファイルsize=10104
errmsg= 0
アップロード成功
テンポラリファイル=/tmp/phpMvCzgo
アップロードファイル=../1/33/1upload.jpg
アップロードファイル名 thum3.jpg
アップロードファイルsize=11528
errmsg= 0
アップロード成功
テンポラリファイル=/tmp/php5Q4kIL
アップロードファイル=../1/33/2upload.jpg
テンポラリの/tmpは777のため権限に問題ないです
php.iniの設定
upload_max_filesize=2m post_max_size=8m memory_limit=128m
今回のアップロードファイルのサイズから問題なし
file_uploads=onなので問題ありませんでした
これでなにかわかる方いらっしゃいましたら教えてください。
お礼
アドバイスありがとうございます。。 返事がかなり遅くなりもうしわけありません 本件につきましては自己解決することができました。 私のしらないソースがあり。後続処理にてアップロードしたファイルを別名退避後に削除していました。