• 締切済み

大容量のファイルアップロードについて

どうしても分からず、質問いたします。 自宅サーバを構築しPHPのブラウザによる大容量ファイルアップロードが可能にしようとしています。 (2GBくらいのファイルでもアップロードしたい) しかし、外側からアップロードを行う際、数十MBまでなら可能ですが、それ以上になると 途中までアップロード処理しているようですが、ページが表示されませんのエラーや、アップロードの処理が中断してしまいます。 ご教授お願い致します。 ■フォーム側の設定(MAX_FILE_SIZE値) <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="2048000000"> ■php.iniの主な変更箇所 memory_limit = -1 max_input_time = 6000 max_execution_time = 60000 upload_max_filesize = 2000M post_max_size = 2000M ■以下サーバの環境です。 OS:Windows2000 SP4 IIS5.0 メモリ:512MB PHP:5.2.5 よろしくお願い致します

  • PHP
  • 回答数4
  • ありがとう数0

みんなの回答

回答No.4

たまたま通りすがって気になったので検索してみたのですが、 以下のサイトの記載は関係あるでしょうか。 Vista (IIS 7) へのファイルアップロード制限  http://pc.watanet.com/?p=270 Web.config というファイルとapplicationHost.config というファイルを編集するそうです。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

IIS側でpostの容量制限があるのでは? 2Gのデータっていえば、BOMでしょ・・・ また容量制限をクリアしても、timeout制限に引っ掛かったりするし 真剣に2Gのデータを送るつもりならftpなりそれ相応の仕組みで やるのが妥当でしょう。

negi_xp
質問者

補足

IIS側でのPOST制限ですが、設定箇所がみつかりませんでした>< ご存知でしたら教えていただきたく思います。 タイムアウト制限ですが、IISのプロパティで接続のタイムアウトの秒数指定を90,000秒にとりあえずしていたのでこの箇所については問題ないかと。。 本来ならFTPを利用するのが妥当だとおもうのですが、どうしてもブラウザにておこないたいのです。。

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.2

原因はIISでファイルサイズの制限がかかっているからです。 制限を大きくすれば大丈夫です。 当然ですが、サーバのメモリサイズとアップロードするファイルサイズには関連性はありません。

negi_xp
質問者

補足

ご回答ありがとうございます。 IISでのファイルサイズの制限のことですが、IISのどこの設定からファイルサイズの制限を変更することができるのでしょうか? ざっくり見ていたのですがわかりません>< ご教授お願い致しますm(__)m

回答No.1

エラーログにはどのようなログが出てるのでしょう? それを確認すれば現在処理が止まる原因が解るのでは? そもそも、メモリが512MBしかないのに2GBは無理だと思います。 壊れそうです。

negi_xp
質問者

補足

ご回答ありがとうございます。 イベントビューアやSYSTEM32内のLOGFILEフォルダなどを確認したのですが、エラーログは特に出力されていませんでした。

関連するQ&A

  • 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
  • ファイルのアップロード

    いつもお世話になっております。 ファイルをアップロードするプログラムを作成しています。 最大ファイルサイズを200MBに設定しようと思っております。 PHPの設定を行なったのですが、ブラウザがフリーズしていまい うまくアップロードできません。 設定は下記のようにしました。 間違い、アドバイスがありましたら、ご教示お願いいたします。 よろしくお願いいたします。 test.php -------------------------------------------------- <form name="form1" method="post" action="test.php" enctype="multipart/form-data">  <input type="hidden" name="MAX_FILE_SIZE" value="200000000" />  <input name="mfile" type="file">  <input name="cfm" type="submit" value="確認画面へ"> </form> php.ini -------------------------------------------------- max_execution_time = 180 memory_limit = 250M post_max_size = 225M upload_max_filesize = 225M <環境> PHP:5.2.5

    • 締切済み
    • PHP
  • ファイルのアップロードに関して

    こんにちは。お世話になっております。 レンタルサーバー上で、ファイルのアップロード画面を作成中なのですが、2MBまでアップロードできるよう下記のように設定しているんですが、300KB(原因はココではないかも知れませんが・・)辺りを境に、アップロードできずに、送信ボタンを押した後、しばらくした後『Internet Explorer ではこのページは表示できません』という表示が出てきてしまいます。 スクリプト側の設定は <input type="hidden" name="max_file_size" value="2000000" /> ちなみに、phpinfoで確認したところ、 max_execution_time 60 post_max_size 100M upload_max_filesize 100M という設定にはなっております。 ローカル上では問題ないのですが、原因は何が考えられるのでしょうか?これはどのような状態になっているか想像だけでも結構です。 お忙しい中恐縮ですが、ご指導いただければ幸いです。宜しくお願い致します。 ※ローカル上ではphp5ですが、レンタルサーバーではphp4になっています。

    • ベストアンサー
    • PHP
  • FreeBSDのPHPでファイルのアップロードができない

    FreeBSD 5.3R:Apache/2.0.52:PHP Version 4.3.4にてPHPでファイルのアップローダを作成しているのですが、うまく動作しません。(/tmpにテンポラリファイルが作成されないようです。)設定は・・・ memory_limit = 40MB post_max_size = 36MB upload_max_filesize = 32MB upload_tmp_dir = /tmp max_execution_time = 260 max_input_time = 300 となっているのですが、phpinfo()で確認すると、何故かmemory_limitの表示がConfiguration PHP Coreにありません。 これに起因するものではないかと思っているのですが、FreeBSDでPHPを使ってらっしゃる方でこのあたりに詳しい方、是非ご教授ください。

    • 締切済み
    • 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
  • 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 --------------------------------------- 上記以外に記載する必要のある項目があれば記載致します。 どなたか心当たりのある方がいらっしゃいましたら、是非ともご教示ください。

  • ファイルのアップロードサイズ

    いつもお世話になっております。 ファイルのアップロードについて質問させていただきます。 mp3ファイルをzipに圧縮してアップロードする機能を制作しております。 4MB程度ですとアップロードできるのですが 10MB以上になるとアップロードができなくなってしまいます。 php.iniの設定は以下のようになっております。 max_file_uploads:20 max_input_nesting_level:64 max_input_time:60 memory_limit:128M この設定ですと、10MBもアップロードできるのではないかと 思うのですが、いかがでしょうか。 もし数値を変更するのであれば、どこを変更すればよろしいでしょうか。 よろしくご教示お願いいたします。 [環境]  PHP:5.3.5

    • ベストアンサー
    • PHP
  • ローカルで動いているPHPがタイムアウトする

    ローカルで動かしているPHPプログラム (他のサイトからソースを自動取得するシステム) を動かしているのですが 巡回するサイトが多いため Maximum execution time of 60 seconds exceeded とエラーが発生してしまいます。 PHP.iniの max_execution_time = 60 max_input_time = 60 の箇所を max_execution_time = 360 max_input_time = 360 へ post_max_size = 20M upload_max_filesize = 20M をそれぞれ100MBへ変更しましたが Fatal error: Maximum execution time of 60 seconds exceeded とエラーが表示されます。 どなたか恐縮ですがこの問題に長けている方のご返信をお待ちしています。 それでは宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • upload_max_filesizeを超えるファイルのアップロード

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

    • 締切済み
    • PHP
  • 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>

    • 締切済み
    • PHP

専門家に質問してみよう