ホームページ >バックエンド開発 >PHPチュートリアル >PHP 大きなファイルのアップロードの問題分析 PHP 大きなファイルのアップロード構成リファレンス

PHP 大きなファイルのアップロードの問題分析 PHP 大きなファイルのアップロード構成リファレンス

WBOY
WBOYオリジナル
2016-07-25 08:54:52842ブラウズ
PHP プログラミングで大きなファイルをアップロードすると、必ず失敗します。その理由は、PHP にはファイルのアップロードにサイズ制限があるためです。参考までに、その解決策を示します。

PHP によるファイルのアップロードに関連するパラメータ: 0: ファイルをアップロードするときにファイルが保存される一時ディレクトリ。 PHP プロセス所有者ユーザーが書き込み可能なディレクトリである必要があります。 指定しない場合、PHP はシステムのデフォルトを使用します php.ini ファイルの Upload_tmp_dir は、PHP によってアップロードされたファイルが配置される一時ディレクトリを記述するために使用されます。 PHP でファイルをアップロードするには、まずサーバーが一時ファイルを閉じておらず、フォルダーに対する書き込み権限があることを確認する必要があります。 1:最大実行時間 変数 max_execution_time は、スクリプトを強制終了する前に PHP がスクリプトの完了を待機する時間を秒単位で設定します。 この変数は、スクリプトが無限ループに入った場合に役立ちます。ただし、完了までに時間がかかる正当なアクティビティ (大きなファイルのアップロードなど) がある場合、この機能により操作が失敗する可能性もあります。 このような場合、重要なプロセスの実行中に PHP がスクリプトをシャットダウンしないように、この変数の値を増やすことを検討する必要があります。

デフォルト値は次のとおりです: 最大実行時間 = 90 2:file_uploads = オン 3:アップロード最大ファイルサイズ = 2M 4:post_max_size フォーム送信に関連する変数は post_max_size で、PHP が POST メソッドを使用したフォーム送信で受信できるデータの最大量を制御します。 デフォルトの 8 MB をより大きなサイズに変更する必要がある場合があります。 代わりに、より現実的な値に適切に減らす必要があります。

ただし、PHP ファイルのアップロード機能を使用したい場合は、この値を Upload_max_filesize より大きく変更する必要があります。 例えば: post_max_size = 8M 5:最大入力時間 この変数は、POST、GET、および PUT メソッドを介してデータを受信する時間を秒単位で制限できます。 アプリケーションが低速リンクで実行されている場合は、データの受信に必要な追加時間に対応するために、この値を増やす必要がある場合があります。 例えば: 最大入力時間 = 90 6:メモリ制限 メモリ制限 = 8M スクリプトの実行によって利用可能なシステム メモリが大量に消費されるのを避けるために、PHP ではメモリ使用量の制限を定義できます。 単一のスクリプトが使用できる最大メモリ容量を指定するには、memory_limit 変数を使用します。 変数memory_limitの値は、post_max_sizeの値より適切に大きくする必要があります。

PHP で大きなファイルのアップロードを実装するには、次の設定を参照できます。 php.iniを開いて最初に見つけます

file_uploads = on ; HTTP 経由でのファイルのアップロードを許可するかどうかを切り替えます。デフォルトはオンです。 Upload_tmp_dir; ファイルは、一時ファイルが保存されるサーバーにアップロードされます。指定しない場合は、システムのデフォルトの一時フォルダーが使用されます。 Upload_max_filesize = 8m; 予想どおり、アップロードされるファイルの最大サイズです。デフォルトは2Mです post_max_size = 8m; は、フォーム内のすべての値を含む、PHP へのフォーム POST を通じて受信できる最大値を指します。デフォルトは8Mです

通常、上記の 4 つのパラメータを設定した後、8M の大きなファイルをアップロードする場合は、上記の 4 つのパラメータを設定するだけで確実に機能します。 ネットワークが実際に 100M/S のアップロード速度を持っていない限り、次のパラメータを変更する必要があります。

max_execution_time = 600; 各 PHP ページの実行時間の最大値 (秒)、デフォルトは 30 秒 max_input_time = 600; 各 PHP ページがデータを受信するのに必要な最大時間、デフォルトは 60 秒 Memory_limit = 8m; 各 PHP ページが消費する最大メモリ、デフォルトは 8M


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。