ホームページ  >  記事  >  バックエンド開発  >  PHP の大きなファイルのアップロードの問題の分析

PHP の大きなファイルのアップロードの問題の分析

WBOY
WBOYオリジナル
2016-07-25 08:54:52815ブラウズ
PHP で大きなファイルをアップロードする設定方法を紹介し、いくつかの PHP アップロード パラメータを説明し、PHP で大きなファイルをアップロードする方法を学習します。必要な友人は参考にしてください。

phpファイルのアップロードに必要なパラメータ: いくつかのパラメータ調整: 0: ファイルをアップロードするときにファイルが保存される一時ディレクトリ。 PHP プロセス所有者ユーザーが書き込み可能なディレクトリである必要があります。指定しない場合、PHP はシステムのデフォルトを使用します php.ini ファイルの Upload_tmp_dir は、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: max_input_time この変数は、POST、GET、および PUT メソッドを介してデータを受信する時間を秒単位で制限できます。アプリケーションが低速リンクで実行されている場合は、データの受信に必要な追加時間に対応するために、この値を増やす必要がある場合があります。 max_input_time = 90

6:メモリ制限 メモリ制限 = 8M

スクリプトの実行によってシステムで使用可能な大量のメモリが使用されるのを避けるために、PHP ではメモリ使用量の制限を定義できます。単一のスクリプトが使用できる最大メモリ容量を指定するには、memory_limit 変数を使用します

変数memory_limitの値はpost_max_sizeの値より適切に大きくする必要があります

PHP の大きなファイルのアップロードを実装する、簡単な構成例:

1: php.ini を開き、まず見つけます

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

通常、上記の 4 つのパラメータを設定した後、ネットワークが正常である限り、8M 以下のファイルをアップロードしても問題ありません。

ただし、8Mを超える大きなファイルをアップロードしたい場合は、上記の4つの項目を設定するだけで間違いなく機能します。実際にネットワークのアップロード速度が 100M/S でない限り、次のパラメータに注意する必要があります。

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

上記のパラメータを変更した後は、ネットワークで許可されている通常の状況で大きなファイルをアップロードできます。



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