画像アップロードについて
いつもお世話になっております。
画像アップロード機能を作成し、問題なくアップロードを行うことができたのですが、
ある一定サイズ(約2MB)を超えるとアップロードが行われない現象が発生しました。
アップロードした画像は既定のサイズにリサイズして保存する仕様となっているのですが
アップロード自体が行われないため、困っています。
以下【該当処理抜粋】-------------------------------------------------------------
// ファイル名を設定する
$fname = "hoge.jpg";
// 画像の幅・高さを設定する【規定値】
$w_size = "150";
$h_size = "100";
$tmp_name = $_FILES[$fname]['tmp_name'];
// 画像ファイル名
$filename = "./hoge/".$fname;
if (is_uploaded_file($tmp_name)){
$type = $_FILES[$fname]['type'];
if ($type == "image/jpeg" || $type == "image/pjpeg") {
// 画像ファイル存在チェック
if(file_exists($filename)){
// ファイルが存在する場合は削除する
unlink($filename);
}
// 画像ファイル名でアップロードをおこなう
move_uploaded_file($tmp_name, $filename);
// 画像ファイルのサイズを取得する
list($sw, $sh) = getimagesize($filename);
$src = imagecreatefromjpeg($filename);
$dst = imagecreatetruecolor($w_size, $h_size);
// 画像ファイルを既定サイズにリサイズする
imagecopyresized($dst, $src, 0, 0, 0, 0, $w_size, $h_size, $sw, $sh);
imagejpeg($dst, $filename);
echo $fname[1]."ファイルのアップロードが完了しました。<br>";
}else{
echo $fname ."ファイルの画像形式が正しくありません。<br>";
}
}else{
echo $fname ."ファイルはアップロードされませんでした。<br>";
}
----------------------------------------------------------------------------------------------------
現象について調べたところ、PHPにはアップロードサイズが設定されている(デフォルト2MB)ため
サイズの大きいファイルはアップロードできないようです。
サーバーはロリポップでレンタルしているためphp.iniの設定を変更ができません。
画像自体を事前にリサイズしてアップロードを行えば問題ないのですが、
今後、一般の方にも公開を予定してまして、リサイズ方法が分からない人(そのようなソフトがない人)にも
操作できるようにデジカメで撮った写真をそのままアップロードできる形式にしたいと考えています。
何かいい方法があればご教授願います。
【環境】
PG:php4.3.11 WEB:Apache
お礼
とってもわかりやすい回答をありがとうございました。 まさに そのとおりだったのだと思います。 小さいサイズでアップロードしたら、大丈夫でした。 感謝、感謝です。