ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:ini_setのpost_max_size) ini_setのpost_max_sizeの設定に関する問題 2004/08/12 16:14 このQ&Aのポイント ini_setの「post_max_size」が正常に動作しない現象について。実行環境のphp.iniの設定とini_setの挙動について。PHPのバージョンが4.2.2であることへの言及。 ini_setのpost_max_size お世話になります。 ini_setの「post_max_size」がなぜか正常に動作しません。「upload_max_filesize」はうまく動作するのですが・・・。 --------------------------------------------- $aaa = ini_set("upload_max_filesize","2M"); $bbb = ini_get("upload_max_filesize"); $ccc = ini_set("post_max_size","3M"); $ddd = ini_get("post_max_size"); --------------------------------------------- ↑これを実行すると以下のように表示されます。 --------------------------------------------- aaa=16M bbb=2M ccc= ddd=8M --------------------------------------------- 本来「ccc=8M」、「ddd=3MB」となるはずなのですが..。$cccを単体で実行してもうまくいきません。 上記から分かりますように、実行環境のphp.iniの設定は、 memory_limit = 64M post_max_size = 8M upload_max_filesize = 16M となっています。マニュアルには 「memory_limit >= post_max_size >= upload_max_filesizeでなければならない」 とありますので、実際は「upload_max_filesize」を「post_max_size」の8M以下に設定し直さなければならないとは思うのですが、これがini_setがうまくいかない原因になり得るでしょうか? 何かご存知の方がいらっしゃいましたら教えて下さい。PHPのバージョンは4.2.2です。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー EEshiba ベストアンサー率29% (45/152) 2004/08/13 03:48 回答No.1 えーと、回答にはならないかも知れませんが、とりあえずわかっている事だけを。 post_max_sizeやupload_max_filesizeはini_setでは設定できません(PHPのini_setのマニュアル参照の事)。 なので、正確にはpost_max_sizeの方が正しく動作しています。 upload_max_filesizeが、なぜこういう動作をしているのかは、わかりませんが...。 質問者 お礼 2004/08/13 10:18 回答ありがとうございます。 こちらでも再度確認してみたのですが、 aaa=16M bbb=2M となっているにもかかわらず、実際には2M以上のファイルをアップロードしてもエラーになりませんでした。 おっしゃるようにini_setしても「upload_max_filesize」は変わらないようです・・・。 直接php.iniを変更することにしようと思います。 ありがとうございました! 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発PHP 関連するQ&A php.iniのpost_max_sizeについて 表題の件、ご教示ください。 現在、php.iniのpost_max_sizeの値を2Mに設定しています。 これで2Mまでのファイルをpostできると思いますが、 仮に複数同時接続が合った場合、当該値はどのように扱われるのでしょうか。 例えば、同時接続が10あり、それぞれが1Mのファイルを同時にアップロードする ことを許容するには、当該値を10Mに変更する必要はありますか? それともpost_max_sizeは同時接続に関係がなく、1接続に対する容量制限でしょうか。 お忙しいところ申し訳ありませんが、 ご教示お願いいたします。 PHPでファイルアップローダー PHPでファイルアップローダーを作成しましたが、サイズの大きなファイルがアップロードできなくて困っています。 具体的には、900MBのファイルアップロードはできますが、1.4GBになるとアップロードできていません。 設定値は下記のようにし、十分にとっているつもりです。なお、HTMLで表示した実際に使われている設定値です。 <?php echo 'memory_limit = ' . ini_get('memory_limit') . "<br />"; echo 'post_max_size = ' . ini_get('post_max_size') . "<br />"; echo 'upload_max_filesize = ' . ini_get('upload_max_filesize') . "<br />"; echo 'max_execution_time = ' . ini_get('max_execution_time') . "<br />"; echo 'max_input_time = ' . ini_get('max_input_time') . "<br />"; ?> ↓ memory_limit = 5120M post_max_size = 5120M upload_max_filesize = 5120M max_execution_time = 300 max_input_time = 300 $_FILEを確認すると、下記のようにファイル名以外空となっています。エラーコードが0で正常アップロードの判定になっているので、原因が分からず困っています。 array(1) { ["upfile"]=> array(5) { ["name"]=> array(5) { [0]=> string(24) "testfile.ISO" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["type"]=> array(5) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["tmp_name"]=> array(5) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" } ["error"]=> array(5) { [0]=> int(2) [1]=> int(4) [2]=> int(4) [3]=> int(4) [4]=> int(4) } ["size"]=> array(5) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) } } } アドバイスいただければ幸いです。 upload_max_filesizeを超えるファイルのアップロード phpにて動画ファイルをアップロードするプログラムを作成しています。 うまくアップロードされないため調べましたところ、upload_max_filesizeを超えたサイズだったためでした。 現状、2Mになってます。 レンタルサーバーなので、php.iniは触れないので、upload_max_filesizeを変えずに対応したいのですが、どうにか方法はないものでしょうか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム ファイルのアップロードサイズについて 環境は linux+Apache+php になります。 ファイルのアップロードサイズについてですが、php.iniに post_max_size = 8M upload_max_filesize = 4M 等の記載がなく、またhttpd.confも AllowOverride none (.htaccessファイル 無効?) になっていた場合、アップロードできるサイズの制限はデフォルトの post_max_size = 8M upload_max_filesize = 2M になるのでしょうか? AllowOverride all の設定で、httpdファイルに記載が無い場合などは調べられたのですが htaccessが無効の場合がちゃんと調べられなくて、 デフォルトだろうなと思いながらも、知識のある方に教えていただきたく、 質問させていただきました。 よろしくお願いいたします。 サーバへのアップロードが出来ない。 表題の通り、アップロードしたファイルが取得出来ずに困っています。 環境はCentOSで、バージョンは覚えていません。 php.iniの設定 file_uploads = On upload_tmp_dir = "/tmp/apache" upload_max_filesize = 1024M memory_limit = 1024M post_max_file = 1024M upload_tmp_dirの値ですが、初期は/tmpだったのですが、権限の問題を疑った為、変更しました。 cd /tmp mkdir apache chmod 777 /etc/apache chown apache:apache apache としてあります。 テストで実際に使っているファイルです。 - index.php <html> <head> </head> <body> <form action="index.php" method="post" enctype="multipart/form-data" name="test"> <input type="file" size="80"> <input type="hidden" name="MAX_FILE_SIZE" value="10000000"> <input type="submit" value="アップロード"> </form> <?php var_dump( ini_get('memory_limit') ); var_dump( ini_get('post_max_size') ); var_dump( ini_get('upload_max_filesize') ); var_dump($_FILES); ?> </body> </html> apacheのエラーログも確認しましたが、$_FILESを$_FILEに書き換えて見た時以来、エラーは出ていませんでした。 解決方法をご存知の方がおりましたら、是非ともご教授頂ければと思います。 アップロードが止まる All-in-One WP Migrationで、1G~2G近くあるファイルのインポートをしようとしています。 php.ini設定で、 memory_limit post_max_size upload_max_filesize の3つを、2Gにしました。 そして、1G~2Gあるファイルをインポートしようとしたのですが、 何度やっても、28%とかで止まってしまいます。 これを止まらずにインポートを完了させるには、どのようにすればできますか? よろしくお願いいたします。 PHPの設定 すいません、PHPの設定ファイルに、 "upload_max_filesize=2M" "post_max_size=8M" とあったんですが、それぞれ何のサイズを指定しているんでしょうか? phpmailerで送れない添付ファイルサイズ jphpmailerを利用して数Mのファイルをメールへ送っています。 こちらは問題なく動いているのですが、同じシステムを使って 10Mを超えるファイル(?試したのは15M程度)が送ることが出来ません。 php.ini関連の設定かと思い色々設定をしてみたのですがその 大きいサイズのファイルだけ送ることが出来ませんでした。 [経緯] 1. Fatal error: Allowed memory size of 52428800 bytes exhausted (tried to allocate 19334337 bytes) と出たのでphp.iniのmemory_limitを100Mに上げた 2. 上記エラーはでなくなりましたが、phpmailer内にあるエラー Could not instantiate mail function. と表示されるようになった。 3. php.ini等いろいろいじって、現在は.htaccessを変更した状態になっていますが2の表示のまま .htaccess内: php_value max_execution_time 120 php_value memory_limit 512M php_value post_max_size 512M php_value upload_max_filesize 512M [質問] どの部分でエラーになっている事が考えられるでしょうか?? (php.iniの設定?sendmail?) 対処法があれば教えてください。 [バージョン等] php5.3 サーバ:heteml 共用サーバ hetemlの通常のメールの制限は100Mでした よろしくお願いします。 dosでサイズを比較して異なるファイルだけコピー dosで全フォルダ内のファイルサイズを比較して異なるファイルだけコピーしたい 次のようなファイル構成で AAAフィルダ BBBフォルダ cccフォルダ cccフォルダ abc.txt abc.txt def.jpg def.jpg dddフォルダ dddフォルダ ghi.txt ghi.txt jkl.jpg jkl.jpg AAA\ccc\abc.txtとBBB\ccc\abc.txt AAA\ccc\def.jpgとBBB\ccc\def.jpg AAA\ddd\ghi.txtとBBB\ddd\ghi.txt AAA\ddd\jkl.jpgとBBB\ddd\jkl.jpg 拡張子は問わずそれぞれに対するファイルのファイルサイズを比較して 大きくても小さくても異なるファイルだけbbbフォルダ内に上書きコピー したくご教授をお願いします docomoでの画像アップロードについてです。 docomoでの画像アップロードについてです。 PCと同じ、fileタグを使用し、携帯で画像をアップロードしたいのですが、 画像アップロードできる画像と出来ない画像があります。 (絵文字画像ならできるが、写メデータだとできない) アップロード出来ない場合、$_FILES及び$_POSTのデータが渡りません。 因みに同じHTML及びPHPのソースでsoftbankだと出来ました。 容量の問題かと思い、 ini_set("upload_max_filesize","2M"); ini_set("post_max_size","3M"); ini_set('max_input_time',"600"); ini_set('max_execution_time',"600"); なども設定しましたが、変わらないです。 どなたかヒントでも頂ければと思います。 宜しくお願いします。 因みにHTMLのソースは下記です。 <form action="スクリプトURL" method="POST" enctype="multipart/form-data"> <input name="MAX_FILE_SIZE" type="hidden" value="1000000"> <input type="FILE" name="photo"> <INPUT type="submit" name="conf" value="アップロード"> </form> 正規表現で一つ目の区切り文字で区切りたいのですが・・・ aaa/bbb/ccc/ddd aaa/bbb/ccc/ddd/eee aaa/ccc/ddd $a=~/(.*)\/(.*)/; $1はそれぞれ aaa/bbb/ccc aaa/bbb/ccc/ddd aaa/ccc と成ってしまいます。 このように 「最後の/」で分けられてしまいます。 一つ目の/で分けるにはどうしたらよいでしょうか。 parse_ini_file関数について parse_ini_file関数について質問させてください。 iniファイルの多次元配列の取得で悩んでいます。 sample.iniの内容 ---------------------- 0=aaa,bbb 1=ccc,ddd 2=eee,fff ---------------------- $ini = parse_ini_file('sample.ini', true); として配列を取得しようとしたのですが、 print("{$ini[0][0]}");としてみると 欲しい結果は「aaa」ですが「a」となってしまいます。 また、print($ini[0]);とすると 結果が配列ではなく「aaa,bbb」のまま表示されてしまいます。 どうも配列として読み込んでないようです。 どなたかご教示していただけると助かります。 よろしくお願いします。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム php.iniについて php.iniについて よろしくお願いします。 【問題点】 upload_max_filesizeをデフォルトの2Mから8Mに変えたいがphp.iniファイルを変えても、 phpinfo();のコマンドで2Mのままで表示されてしまう。 【現状】 1.Loaded Configuration File「C:\Windows\php.ini」を変えたが反応がない。 2.サーバも再起動してみたが、変わらなかった。 3.他のローカルディスクC内の他の「php.ini」を消しても変化なし 4.全ての「php.ini」を消してもphpinfo()が動いた(全部消したのにどこのiniファイルを見てるんだろ?) お手上げ状態です・・・ ご助力の程、よろしくお願いいたします。 【エクセル】空セルを埋める方法 お世話になります。 下記のような表があります。 1行目:AAA,BBB,CCC,DDD 2行目:空セル,BBB,CCC,DDD 3行目:空セル,BBB,CCC,DDD 4行目:aaa,BBB,CCC,DDD 5行目:空セル,BBB,CCC,DDD ・・・ こんなパターンの行が結構あります。 空セル部分を下記のように埋めたいのですが 1行目:AAA,BBB,CCC,DDD 2行目:AAA,BBB,CCC,DDD 3行目:AAA,BBB,CCC,DDD 4行目:aaa,BBB,CCC,DDD 5行目:aaa,BBB,CCC,DDD てっとり早く埋める方法ありませんか? いまは、【ctrl+↓】 ⇒【↑】⇒【ctrl+D】を延々繰り返しています。 宜しくお願いいたします。 PHPでファイルダウンロードの上限 PHPを使ってファイルをダウンロードするプログラムを書きました。 header()で最後にreadfile()で出力する流れですが、htaccessで 「upload_max_filesize」「post_max_size」「memory_limit」を600Mとしましたが、 PHPでダウンロード出来る容量が約100MB程度しかダウンロード出来ません。 色々と調べましたが原因が分かりません。 お分かりになる方、教えていただけないでしょうか? よろしくお願い致します。 大きいサイズのファイルのアップロード ファイルのアップロードについて教えてください。 OSはLinuxです。 php.iniのupload_max_filesizeは10Mを指定してあります。 そこで7Mくらいのデータをアップロードしようとすると ファイルの存在チェックでファイルが見つかりません。となってしまいます。 小さいサイズのファイルでは問題はありません。 サーバーはApacheを使用しています。 また、Windowsで同じ設定で同じファイルのアップロードは できます。 なにか原因となるものがありましたら、 是非教えてください。 よろしくお願いします。 ファイル内でのini_set ファイル内でのini_setの挙動について意味がわかりません。 エラー表示を制御させたくphpファイル内にini_set('display_errors', 0);としました。 echo ini_get('display_errors');//1と表示 ini_set('display_errors', 0); //$str = "aaa" echo ini_get('display_errors');//0と表示 exit; この状態で$strのコメントを外すとなぜかエラーがきっちり表示されてしまいます。 調べたところファイル内で設定できないものもあるがこの項目についてはファイル内で 制御できるとありました。 .htaccessではinclude_pathの設定をしているだけでdisplay_errorsの設定はしておらず全く 原因がわかりません・・・ちなみに.htaccessでphp_value display_errors Offを入れると エラーは表示されません。 環境はphp5でxamppを利用しております。 ローカルか運用サーバーかでそれぞれの制御を変えたくできればphp内で行いたいのですが どうすればいいものでしょうか? 正規表現 正規表現 a=/home/aaa/bbb/ccc/ddd.abc echo ${a%.abc}実行したら /home/aaa/bbb/ccc/ddd が表示されますが、 home/aaa/bbb/ccc/ddd に表示したいですがうまくいきません。 ネットで正規表現さがしてみたけど理解できませんでした。 教えていただきたいです。なお 説明文も簡単に記入していただいたら幸いです。 MAMPでsqlをインポートできない macカテゴリで回答が頂けなかったのでphpの方で再度質問させてください。 mampでphpmyadminを使って90Mのsqlをインポートしようとしたのですが ファイルサイズが大きすぎるため下記のようなエラーが出ました。 Fatal error: Allowed memory size of xxxxxx bytes exhausted phpinfoにてphp.iniファイルの場所を確認し該当するphp.iniの memory_limit post_max_size upload_max_filesize max_execution_time 等を大幅に増やして書き換えました。 MAMPを再起動しphpinfoで設定が反映されたのも確認したのですが どうしても上記のエラーが解消されません。 何か他に見落としている点はありますでしょうか? ご教授頂けますようお願いいたします。 サーバ上でGETはできるがPOSTができない Linuxサーバ上でGETはできるがPOSTができない、という現象が出ています。 ローカルのWindowsPCで試していて、その状態ではPOSTできています。 また、同一サーバ上でもいくつかPOSTはしており、そこでは問題なくPOSTできています。 POST先に画面遷移はしており、GETで渡す値は取れているのですが、POSTをvar_dumpしてやると array(0){} と、全く取得できていません。 ちなみにphp.ini のmax_input_vars、post_max_sizeなどはサイズを大きくしています(ここが関連してくるほどのサイズではないと思いますが) このような状態は初めてなので、わかる方が居たらぜひ教えてください。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
回答ありがとうございます。 こちらでも再度確認してみたのですが、 aaa=16M bbb=2M となっているにもかかわらず、実際には2M以上のファイルをアップロードしてもエラーになりませんでした。 おっしゃるようにini_setしても「upload_max_filesize」は変わらないようです・・・。 直接php.iniを変更することにしようと思います。 ありがとうございました!