ホームページ >バックエンド開発 >PHPチュートリアル >PHP ファイルのアップロード機能を実装するための php.ini の構成、_PHP チュートリアル
この記事では、PHPファイルアップロード機能を実装するためにphp.iniを設定する方法を紹介します。これには、php.ini 設定ファイルの Upload_tmp_dir、upload_max_filesize、post_max_size およびその他のオプションが関係します。これらのオプションが、ファイルのアップロードの成功または失敗の鍵となります。 Windows バージョンの php.5.3.5 を例に挙げます。
テキスト ツール (EditPlus をお勧めします) で php.ini 設定ファイルを開き、この領域には次の 3 つのオプションがあります:
file_uploads = オン
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 でデータ処理を探します。この領域には 1 つのオプションがあります:
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 つのオプションがあります。
最大実行時間 = 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;
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
この例は参考用です。実際の状況に応じて調整できます。