• ベストアンサー

php.iniのpost_max_sizeについて

表題の件、ご教示ください。 現在、php.iniのpost_max_sizeの値を2Mに設定しています。 これで2Mまでのファイルをpostできると思いますが、 仮に複数同時接続が合った場合、当該値はどのように扱われるのでしょうか。 例えば、同時接続が10あり、それぞれが1Mのファイルを同時にアップロードする ことを許容するには、当該値を10Mに変更する必要はありますか? それともpost_max_sizeは同時接続に関係がなく、1接続に対する容量制限でしょうか。 お忙しいところ申し訳ありませんが、 ご教示お願いいたします。

  • 653
  • お礼率36% (138/382)
  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

post_max_sizeは接続数とは無関係です。

653
質問者

お礼

そうなんですね。マニュアルとかみたのですが、記載がなかったので。 ご教示ありがとうございました。

その他の回答 (1)

回答No.1

こんにちは。 ファイルのアップロードなら、 upload_max_filesize こちらを指定するべきです。 post_max_size これはPOSTデータすべての総容量になりますので、厳密にファイルサイズとは関係なくなってしまいます・・・。 で、質問の回答については、1接続に対する制限になります。

653
質問者

お礼

すみません、post_max_sizeは1ユーザに対してってことですね。 失礼しました。

653
質問者

補足

ご教示ありがとうございます。 ちなみにpost_max_sizeも1ユーザに対してのpostデータの総容量なのでしょうか?

関連するQ&A

  • 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です。

    • ベストアンサー
    • PHP
  • ファイルのアップロードサイズについて

    環境は 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が無効の場合がちゃんと調べられなくて、 デフォルトだろうなと思いながらも、知識のある方に教えていただきたく、 質問させていただきました。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ファイルサイズがpost_max_sizeを超える場合のエラー処理について

    PHPでアップロードファイルのサイズチェックに関する処理で困っています。 アップロードファイルのサイズチェックを行う場合はPHPスクリプト内でスーパーグローバール変数の$_FILES[フォーム名]['size']からサイズチェックを行うのが一般的であると考えています。 ところが、php.iniのパラメーターpost_max_sizeを超えるサイズのファイルをアップロードしようとするとファイルのアップロードが行われないため$_FILES[フォーム名]['size']でのチェックも行えずユーザーにファイルサイズに起因するエラーであることを通知することが出来ません。 そこで、お知恵をお借りしたいのはpost_max_sizeを超えるサイズのファイルをアップロードした際(またはしようとした際)に、ユーザーにファイルサイズに起因するエラーであることを知らせる方法はあるのでしょうか? 方法の例として以下の2つを見つけたのですが、いずれもユーザーに的確にエラーを返すことが出来ません。 1.HTMLのFORMタグ内にMAX_FILE_SIZEを指定する。  → 指定した値より大きなファイルをアップロードすると画面がリロードされたような動きとなりフォームがクリアされます。 PHPスクリプトに処理がわたらないようでユーザーにエラーを返せません。(IE8 / Apache2.2 + PHP5の場合) 2.ブラウザ側スクリプトでファイルサイズを取得する  → IE限定の方法しかないためIE以外でも可能な方法を期待しています。 なにか良い方法をご存知の方はお力を貸してください。

    • ベストアンサー
    • PHP
  • PHPのファイルアップロードについて

    現在CakePHPでファイルのアップロードを行おうとしています。 で一通りアップの手順は書き終わったのですが、じつはアップロードするファイルが マックスで100MBほどになる可能性があるのです。 現在、仮のサーバーで試してみたところ10~11MBほどのファイルであればちょっと時間がかかりますが、アップはできました。 ただしそれ以上の重いファイルになるとBadRequestとなりアップできません。 通常PHPはデフォルトでは2MBが最大アップ容量だと思います。 それの制限を #Apache側でのリクエストのバイト制限 LimitRequestBody 300000000 #PHP.ini側でのPOSTリクエストのバイト制限 php_value post_max_size 300M #PHP.iniでのファイルアップロードのバイト制限 php_value upload_max_filesize 300M 上記のような記述をhtaccessに記述しています。 ところが、12MB~以上のファイルになるとブラウザがBadRequetを返してしまいます。 これは実際のレンタルサーバーだけでなく、ローカルのApache環境でも同様の現象が起きます。 他に、アップ時に制限をかけているプロパテイ的なものがApacheやPHPの設定にあるのでしょうか? アップロードに詳しい方ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • PHPの$_FILES

    RHEL6.3の環境で、 php.ini の upload_max_filesize と post_max_sizeを[30M]にして ファイルアップロードの動作確認をしていますが、 [25M]のファイルをアップロードすると$_FILESの変数の中身が取得できるのですが、 [35M]のファイルをアップロードすると$_FILESが空の状態で var_dumpで出力しても 配列の構造にもなっていません。 サイズ超過のときでもちゃんと$_FILES で情報を取得したいのですが、できない原因として 何が考えられるでしょうか? また対処法はありますでしょうか? 回答お願いします。

    • ベストアンサー
    • PHP
  • 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ファイルを見てるんだろ?) お手上げ状態です・・・ ご助力の程、よろしくお願いいたします。

  • upload_max_filesizeを超えるファイルのアップロード

    phpにて動画ファイルをアップロードするプログラムを作成しています。 うまくアップロードされないため調べましたところ、upload_max_filesizeを超えたサイズだったためでした。 現状、2Mになってます。 レンタルサーバーなので、php.iniは触れないので、upload_max_filesizeを変えずに対応したいのですが、どうにか方法はないものでしょうか?

    • 締切済み
    • PHP
  • 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) } } } アドバイスいただければ幸いです。

    • 締切済み
    • PHP
  • phpで巨大なファイルをアップロード

    お世話になります。 PHP・Apacheを使用して大きな容量のファイルをアップロードしようとしています。 php.iniで下記のように値を変更しました。 max_execution_time = 1800 max_input_time = 1800 memory_limit = 2048M post_max_size = 2048M upload_max_filesize = 2048M default_socket_timeout = 1800 この状態でApacheを再起動して1.2GBほどのファイルをアップロードしてみたのですが エラーも起こらず、正常にアップロードされたかと思ったら160バイト程の容量でサーバーにあがっていました。 600MBくらいのファイルでためしたところ正常にアップロードされたのですが 1GB以上のファイルをアップロードするためにはまだなにか設定が足りない、または間違っているのでしょうか? サーバーはCentOS5.5の64bit、メモリは16GBあります。 回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • Apatch、PHPを用いたファイルのアップロード

    Apatch、PHPを用いたファイルのアップロード サーバ構築、PHPともに初心者です。 原因が全くわからないので、質問させて頂きます。 現在、ApatchとPHPを用いた、ファイルのアップロードシステムを考えています。 適当なファイルをアップロードする所までは順調なのですが、ファイルの容量が一定以上になるとアップロードが出来ません。 具体的な数値はわかりませんが、7.5MBのファイルは可能、8.2MBのファイルは不可能といった所です。 恐らく8MBが区切りだと考えています。 環境、設定等は以下の通りです。 --------------------------------------- [PC] OS:Windows XP SP2 Memory:2GB [ソフト・バージョン] Apatch2.2 PHP5.2.10 [php.ini内] uploads = On upload_tmp_dir = "C:/tmp"(十分な空き容量) upload_max_filesize = 500M post_max_size = 500M memory_limit = 512M max_execution_time = 10000 --------------------------------------- 上記以外に記載する必要のある項目があれば記載致します。 どなたか心当たりのある方がいらっしゃいましたら、是非ともご教示ください。