ホームページ  >  記事  >  バックエンド開発  >  php.iniを設定してphpファイルのアップロード機能を実装する

php.iniを設定してphpファイルのアップロード機能を実装する

伊谢尔伦
伊谢尔伦オリジナル
2016-11-25 13:56:251287ブラウズ

php.ini のファイル アップロード機能の設定オプションの説明

テキスト ツール (EditPlus を推奨) を使用して php.ini 設定ファイルを開き、[ファイル アップロード] を探します。この領域には次の 3 つのオプションがあります。 file_uploads = On

HTTP ファイルのアップロードを許可するかどうか。デフォルト値はオンで、HTTP ファイルのアップロードを許可します。このオプションをオフに設定することはできません。

upload_tmp_dir =

ファイルアップロード用の一時保存ディレクトリ。指定しない場合、PHP はシステムのデフォルトの一時ディレクトリを使用します。このオプションは、デフォルトでは空です。このオプションは、PHP 実行環境を手動で構成するときに忘れられやすいため、このオプションに値 (upload_tmp_dir = " など) を割り当てる必要があります。 d:/fileuploadtmp"。これは、D ドライブのディレクトリに fileuploadtmp ディレクトリがあり、このディレクトリに読み取りと書き込みの権限が与えられていることを意味します。

upload_max_filesize = 2M

アップロードされるファイルの最大サイズ。このオプションのデフォルト値は 2M です。つまり、50M のファイルをアップロードする場合は、upload_max_filesize = 50M を設定する必要があります。

ただし、upload_max_filesize = 50M を設定するだけでは、大きなファイルのアップロード機能を実現することはできません。php.ini ファイルの post_max_size オプションも変更する必要があります。


php.ini でデータ処理の検索を続けます。この領域にはオプションがあります:

post_max_size = 8M

は、フォーム内のすべての値を含む、PHP がフォーム POST を通じて受け取ることができる最大値を指します。デフォルトは8Mです。 POST データが制限を超えると、$_POST と $_FILES は空になります。

大きなファイルをアップロードするには、このオプションの値を、upload_max_filesize オプションの値より大きく設定する必要があります。たとえば、upload_max_filesize = 50M に設定した場合、post_max_size = 100M に設定できます。

さらに、メモリ制限が有効な場合、値はmemory_limitオプションの値より小さくする必要があります。

php.ini でリソース制限を探し続けます。この領域には 3 つのオプションがあります:

max_execution_time = 30

各 PHP ページの実行時間の最大値 (秒)、デフォルトは 30 秒です。 50M ファイルなどの大きなファイルをアップロードする場合、完了までに数分かかる可能性があります。ただし、PHP ページのデフォルトの最大実行時間は 30 秒を超えると、スクリプトの実行が停止します。その結果、Web ページを開くことができなくなります。したがって、max_execution_time = 600 など、より大きな値を設定できます。 0 に設定すると、時間制限がないことを意味します。

max_input_time = 60

各 PHP スクリプトがリクエスト データを解析するために使用する時間 (秒)、デフォルトは 60 秒です。大きなファイルをアップロードする場合は、この値をより大きく設定できます。 0 に設定すると、時間制限がないことを意味します。

memory_limit = 128M

このオプションは、単一の PHP スクリプトが適用できる最大メモリ空間を設定するために使用されます。これは、不適切に作成されたスクリプトがサーバー上の使用可能なメモリを使い果たすことを防ぐのに役立ちます。メモリ制約が必要ない場合は、これを -1 に設定します。

php5.2.0のデフォルトバージョンは8M、php.5.2.0のデフォルトバージョンは16Mです。 php 5.2.0 以降のバージョンのデフォルトは 128M です。


php.ini ファイルのアップロード機能の設定例

50M の大きなファイルをアップロードするとします。 php.ini を次のように設定します:

file_uploads = On

upload_tmp_dir = "d:/fileuploadtmp"
upload_max_filesize = 50M
post_max_size = 100M
max_execution_time = 600
max_input_time = 600
memory_limit = 128M

ヒント:memory_limit > を維持する必要があります。 post_max_size > ; Upload_max_filesize

この例は参考用であり、実際の状況に応じて調整できます。

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