
いつもお世話になっております。
画像アップロード機能を作成し、問題なくアップロードを行うことができたのですが、
ある一定サイズ(約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
No.3ベストアンサー
- 回答日時:
ini_setでダメなものは、.htaccess か php.ini で設定します。
php.ini はいじれないとのことなので、.htaccess で設定してみたらいかがでしょう。
(例)
php_value upload_max_filesize 5M
なお、upload_max_filesize や post_max_size だけではなく、memory_limit の値も関係してくるはずです。
この回答への補足
ちなみに以下のサイトで調べました。ご参考までに載せておきます。
【ロリポップhtaccess設定】
http://lolipop.jp/?mode=manual&state=hp&state2=h …
【htaccess設定方法】
http://webos-goodies.jp/archives/51081890.html
返信、遅れました。
回答ありがとうございます。
htaccessの設定してみましたが、うまくいきませんでした。
ロリポップに問い合わせをしてみてアップロードサイズの変更ができるのか聞いてみたんですが、ユーザ側でサイズ変更はできませんとの回答でした。(:_;)
というこで、2M以下でアップロードを対応しないということが分かりましたので、簡単な画像リサイズツールを作って提供しようかなと思います。
No.2
- 回答日時:
ini_set("upload_max_filesize","8M");
に加えて
ini_set("post_max_size","8M");
ではいかがでしょうか?
Apache側(httpd.conf)で2Mに設定されている場合は
もうどうしようもありません。
しかし、出来たとしても多くの人が2M以上でアップロードしてきたら
転送量が多いという事でロリポップから警告を受けませんか?
回答ありがとうございます。
やってみたけども実行できませんでした。
ちょっと調べてみたらini_setを使用する場合、設定オプションの変更の可否が「PHP_INI_ALL」または「PHP_INI_USER」でないといけないみたで、
upload_max_filesize、post_max_size共に「PHP_INI_PERDIR」でした・・・
http://jp.php.net/manual/ja/ini.php
なのでこの方法では無理みたいですね(T_T)
おっしゃる通り転送量の件は考慮する必要はありますが、他に方法はないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
SmartyでHTMLソースの変更が反...
-
SendMailがエラーを返さない
-
CSV出力にHTMLが入ってしまう
-
.phpファイルが、表示されない
-
PHPからメールを送る@さくらイ...
-
centos6のlogにscript not foun...
-
ob_end_clean と ob_clean の違...
-
php.ini を設定を変更すると再...
-
CFileDialogの最初のディレクト...
-
IIS+PHP スクリプトから仮想デ...
-
glide3x.dllがないと表示されま...
-
PHPのif文でその処理を途中で抜...
-
PHP PDOライブラリが読み込まれ...
-
include先でのinclude元の変数...
-
try~catch構文は、どういうメ...
-
FTPコマンドでディレクトリごと...
-
Notice: Undefined offset: 1を...
-
PHPでメールを受信するには?
-
テキストボックスにデータベー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
youtubeに音声のみのmp4ファイ...
-
「クラウドにアップロード」」...
-
FTPClientで転送結果(OKかFAIL)
-
ftpでアップロードが出来ない
-
BASP21のFTPで日本語ファイル名...
-
ファイルサイズがpost_max_size...
-
初めまして、
-
VBでクラウドストレージにア...
-
どうして送信されないのでしょ...
-
ファイルをGET送信でアップロー...
-
アップロードしたファイルの移...
-
アップロードしたのに表示され...
-
またまた。
-
利用容量や画像サイズ、画像フ...
-
アップロードなのですが
-
CGI.pmでファイルアップロード...
-
$filePath = './user_img/' . $...
-
ファイルのアップロード
-
PHPを使ったWEBサイトでアップ...
おすすめ情報