3

ファイルをアップロードするための PHP フォームがあり、正常に動作し、問題が発生した場合はエラー メッセージが表示されます。これはすべて良いです。

問題は、非常に大きなファイルでテストすると、ファイルをまったく送信していないかのようにページが更新され、フォームの $_POST 変数がサーバーに送信されないことです。

ユーザーにエラーを表示して、ファイルが大きすぎることを知らせたいです。しかし、私はこれを行うことはできません。

誰が何が起こっているのか知っていますか?

4

6 に答える 6

13

PHPのiniファイルを確認してください。これは、PHPがアップロードできるファイルのサイズを決定します。これらの変数は重要です。

  • 最大アップロードファイルサイズ(upload_max_filesize)
  • 最大投稿データサイズ(post_max_size)
  • メモリ制限(memory_limit)

設定に応じて、これらの範囲外のアップロードは無視されるか、エラーになります。

ドキュメントのこのセクションには、最高の要約があります:http: //ca3.php.net/manual/en/features.file-upload.common-pitfalls.php

編集:ほとんどのブラウザは2GBを超えるサイズのアップロードを送信しないことにも注意してください。このリンクは古くなっていますが、アイデアがあります:http ://www.motobit.com/help/scptutl/pa98.htm 。誰かがこれに関するより良い情報源を持っていますか?

Apacheなど、サーバーによって課される可能性のある制限もあります。http: //httpd.apache.org/docs/2.2/mod/core.html#limitrequestbody

何が起こっているのかを実際に確認するには、おそらくWebサーバーのログを確認し、ブラウザーのアップロード制限(Firefoxを使用している場合)を確認して、print_r($_FILES)有用なエラー番号が生成されるかどうかを確認する必要があります。他のすべてが失敗した場合は、firebugでネットトラフィックモニターを試してください。重要なのは、リクエストがサーバーに送信されるかどうか、およびリクエスト(ヘッダーを含む)がどのように見えるかを判断することです。チェーンのここまで進んだら、戻ってPHPがアップロードをどのように処理しているかを確認できます。

于 2009-03-05T15:43:37.293 に答える
1

完全にアップロードされるまで、アップロードされているファイルのサイズを知ることはできません。したがって、ファイルサイズを決定し、大きなファイルに対してエラーを表示する場合は、最初にファイルをアップロードしてから、ファイルサイズを確認する必要があります。大きなファイルをアップロードするには、php構成ファイルphp.iniで2つの設定を行う必要があります。それを開いて「upload_max_filesize」を検索し、値を必要な最大値に設定します。次に、アップロードされたファイルはHTTP POSTメソッドを介して受信されるため、POSTパラメーターの最大値を設定する必要があります。「post_max_size」を見つけて、に大きな値に設定します。

于 2009-03-05T18:33:11.990 に答える
0

アップロードがどれだけ行われたかを知るために、通常のajax呼び出しを行う簡単なスクリプトを実装します。次に、ある種のプログレスバーを実装できます。ネット上にはいくつかの例があります。

http://martinjansen.com/2007/04/28/file-upload-progress-bars-with-php/

于 2009-03-05T15:43:45.063 に答える
0

以前のユーザーが答えたように、オプションから離れて:

max upload filesize (upload_max_filesize)
max post data size (post_max_size)
memory limit (memory_limit)

また、ファイルが非常に大きい場合、または回線が混雑している場合、この操作を実行するのに多くの時間が必要であり、スクリプトの実行制限の上限に達します。

max_execution_time
于 2016-11-25T06:22:27.797 に答える
0

最大アップロード ファイル サイズ (upload_max_filesize) 最大投稿データ サイズ (post_max_size) は、設定する必要があるディレクティブです。複数の OS、ブラウザなどでテストしましたが、心配する必要があるのはこれら 2 つだけです。

于 2009-03-28T04:51:21.663 に答える