簡単なファイルのアップロードをしようとしています。今まで何度もやってますが大丈夫です。何らかの理由で、今回はエラーが発生し続けますUPLOAD_ERR_INI_SIZE
。以前に同じサーバーに大きなファイルをアップロードしたことがありますが。これが私のPHP.INIです:
display_errors = On
short_open_tag = On
memory_limit = 32M
date.timezone = Europe/Paris
upload_max_filesize = 10M
post_max_size = 10M
そして私のHTMLフォーム:
<form action="/settings/upload-image" method="POST" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="<?=(1024*1024*1024);?>">
<input name="files[]" id="attachfile" type="file" />
<br /><br />
<input type="submit" class="submit" value="Upload New Profile Image">
</form>
そして私のコード:
foreach($files as $file)
{ $ext = strtolower(pathinfo($file[0], PATHINFO_EXTENSION));
if(in_array($ext,$allowed_upload_ext)===TRUE)
{
if(!$file[3]) { // If no error code
//$newFile = $me['id'].".$ext";
$newFile = $file[0];
resizeImage($file[2],PROFILE_IMAGES."/".$newFile,$ext,500);
genThumbFile($file[2],PROFILE_IMAGES."/thumb/".$newFile);
runSQL("UPDATE `users` SET `image`='{$file[0]}' WHERE `id`='{$me['id']}';");
array_push($msgs,"Image uploaded successfully.");
$me = select("SELECT * FROM `users` WHERE `id`='{$me['id']}';",true);
} else {
array_push($msgs,"!".fileError($file[3]));
}
} else {
array_push($msgs,"!The file ".$file[0]." could not be uploaded as it is the wrong file type.");
}
}
今回の唯一の違いは、最初にファイルをコピーするのではなく、一時アップロード ファイルを使用してサムのサイズを変更して生成していることです。それが問題でしょうか?画像が小さい場合は完全に正常に機能するため、そうは思いません。しかし、私は2mbのようなものを試してみると、うまくいきます。
提案?