ホームページ >バックエンド開発 >PHPチュートリアル >PHPファイルアップロード機能を実装するためのphp.iniの設定方法
PHPファイルアップロード機能を実装するためのphp.iniの設定方法
この記事では、PHP ファイルのアップロード機能を実装するために php.ini を構成する方法について説明します。これには、php.ini 設定ファイルの Upload_tmp_dir、upload_max_filesize、post_max_size およびその他のオプションが関係します。これらのオプションが、ファイルのアップロードの成功または失敗の鍵となります。 Windows バージョンの php.5.3.5 を例に挙げます。
php.ini のファイルアップロード機能の設定オプションの説明
テキスト ツール (EditPlus を推奨) を使用して php.ini 構成ファイルを開き、この領域には次の 3 つのオプションがあります。
file_uploads = オン
HTTP ファイルのアップロードを許可するかどうか。デフォルト値はオンで、HTTP ファイルのアップロードを許可します。このオプションをオフに設定することはできません。
アップロード_tmp_dir =
ファイルアップロード用の一時保存ディレクトリ。指定しない場合、PHP はシステムのデフォルトの一時ディレクトリを使用します。このオプションは、デフォルトでは空です。このオプションは、PHP 実行環境を手動で構成するときに忘れられやすいため、このオプションに値 (upload_tmp_dir = " など) を割り当てる必要があります。 d:/fileuploadtmp"。これは、D ドライブのディレクトリに fileuploadtmp ディレクトリがあり、このディレクトリに読み取りと書き込みの権限が与えられていることを意味します。
アップロード最大ファイルサイズ = 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 に設定すると、時間制限がないことを意味します。
最大入力時間 = 60
各 PHP スクリプトがリクエスト データを解析するのにかかる時間 (秒単位)。デフォルトは 60 秒です。大きなファイルをアップロードする場合は、この値をより大きく設定できます。 0 に設定すると、時間制限がないことを意味します。
メモリ制限 = 128M
このオプションは、単一の PHP スクリプトが適用できる最大メモリ領域を設定するために使用されます。これは、不適切に作成されたスクリプトがサーバー上の使用可能なメモリを使い果たすことを防ぐのに役立ちます。メモリ制約が必要ない場合は、これを -1 に設定します。
php5.2.0 より前のバージョンのデフォルトは 8M、php.5.2.0 バージョンのデフォルトは 16M です。 php 5.2.0 以降のバージョンのデフォルトは 128M です。
50M の大きなファイルをアップロードするとします。 php.ini を次のように構成します:
file_uploads = オン
Upload_tmp_dir = "d:/fileuploadtmp"
アップロード最大ファイルサイズ = 50M
post_max_size = 100M
最大実行時間 = 600
max_input_time = 600
メモリ制限 = 128M
ヒント:memory_limit > post_max_size > を維持する必要があります。