2011-01-17 16 views
2

私はPHPによくある問題があります:ファイルが大きすぎるとMy $ _FILES配列は空です。

のphp.ini:

max_execution_time = 300000 
max_input_time = 600000000 
memory_limit = 5100MB 
post_max_size = 5000MB 
upload_max_filesize = 5000MB 

ファイル:

Trouve.tar : 910Mo 

の設定値は巨大であるが、私は、スクリプトがアップロードを行うには時間とメモリを持っていることを確認したいです。

ので、許可サイズはファイルサイズより大きいですが、私は他の人(のようなexemple用problem with uploading the images with php file upload)よりも、同じエラーを持っている

は、私はいくつかの構成設定を逃したことがありますか?

+0

を使用し、910メガバイトということはありますか?私はそれを見ていませんでしたが、PHPにはおそらくいくつかの組み込みハード制限があります。 – mario

+0

明確にするために、小さなファイルで動作しますか? – Naatan

+0

@Naatanはい問題なく動作します。 –

答えて

2

代わりのMB真剣M

memory_limit = 5100M 

post_max_size = 5000M 

upload_max_filesize = 5000M 
1

php.iniの設定に加えて、Webサーバーの制限を確認してください。

たとえば、Apacheを使用している場合はLimitRequestBody、nginxを使用している場合はclient_max_body_sizeを増やす必要があります。

Webサーバーが受け入れる制限より大きいHTTP要求がある場合、状態413要求エンティティが大きすぎるHTTP応答を返します。

+0

LimitRequestBodyが0(制限なし)に設定され、結果スクリプトが表示されます(「大きすぎるファイル」の場合はサーバーエラーなし)。 –

+0

php.iniファイルまたは仮想ホスト構成ファイルで、upload_max_filesize、post_max_size、max_execution_time、およびmax_input_timeの設定がOKであることを確認してください。デバッグ時の出力は 'var_dump($ _ FILES)'と 'var_dump($ _REQUEST)'ですか? Apacheで 'LogLevel debug'を起動して、ファイルをアップロードするときにサーバが記録する問題をチェックすることもできます。 – scoffey

3

php.iniの設定でupload_limitを確認してください。あなたのhtmlのformタグで

、これを置くことを忘れないでください:enctype="multipart/form-data"

+0

hlegiusありがとうございますが、私のphp.iniで "upload_limit"を見つけられず、存在しないようです:http://www.google.fr/search?sourceid=chrome&ie=UTF-8&q=site:php.net+max_execution_time# sclient = psy&hl = fr&safe = off&q = site:php.net +%22upload_limit%22&aq =&aqi =&aql =&oq =&pbx = 1&fp = 92e401c307f5f81f私のフォームは小さなファイル(300Mo程度まで)で動作するので、 "enctype =" multipart/form-data ""が設定されています。 –

7

問題はあなたのpost_max_sizeので$ _FILES配列(および$ _POST)の原因となりますupload_max_filesizeでと同じサイズであるに空である。 post_max_sizeの上限を上回ると、$ _FILES配列は空になりません。

編集:なぜ否定的な投票が行われたのかわかりません。このケースでは正確には適用されないかもしれませんが、言及する価値があります。これはまさにphp.netの言葉です:http://www.php.net/manual/en/ini.core.php#ini.post-max-size。 POSTデータの大きさが、post_max_sizeより 、大きい場合

は$ _POSTと $ _FILESスーパーグローバルは空です。

+0

否定的な投票は私のものではありませんでした。ごめんなさい。私は時間があるときにあなたが言ったことを試してみます。瞬間、私はあきらめた。ありがとうございました。 –

+1

@ChuckBurgessその本当の事実:) – Abhishek

関連する問題