ホームページ  >  記事  >  バックエンド開発  >  PHP.INI:ファイルアップロード機能の設定

PHP.INI:ファイルアップロード機能の設定

巴扎黑
巴扎黑オリジナル
2016-11-29 09:59:58955ブラウズ

注: Apache サーバーの場合は、Apache フォルダーに php.ini ファイルを設定する必要があります。PHP ファイルのアップロード機能の設定には、主に php.ini 設定ファイルの Upload_tmp_dir、upload_max_filesize、post_max_size などのオプションが含まれます。

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

php.ini設定ファイルを開き、File Uploadsを見つけます

file_uploads = On

HTTPファイルのアップロードはデフォルトで許可されており、このオプションをOFFに設定することはできません。

Upload_tmp_dir =

このオプションは、PHP 実行環境を手動で設定するときに忘れがちですが、このオプションが設定されていない場合、ファイルが保存される一時ディレクトリを設定できません。ファイルをアップロードするときに、このオプションに値を割り当てる必要があります (upload_tmp_dir ='/leapsoulcn' など)。これは、C ドライブ ディレクトリに Leapsoulcn ディレクトリがあることを意味します。 Linux 環境の場合は、このディレクトリに書き込み権限を与える必要があります。

8Mを超える大きなファイルをアップロードするにはどうすればよいですか?

大きなファイルをアップロードするには、主に、upload_max_filesize と post_max_size という 2 つのオプションを設定する必要があります。

php.ini設定ファイルのデフォルトのファイルアップロードサイズは2Mです。PHP初心者がやりがちな間違いは、ファイルアップロード関数を記述する際に、アップロードするファイルの最大サイズ、つまり最大値をフォーム領域に設定してしまうことです。アップロードが許可されるファイルの値、アップロードされるファイルのサイズを指定する max_file_size (隠し値フィールド) の値。実際、通常、他の人はこの値をバイパスできるため、安全上の理由から、upload_max_filesize オプションを設定するのが最善です。 php.ini 設定ファイルを使用して、アップロードするファイルのサイズを設定します。

デフォルトのupload_max_filesize = 2M、つまりファイルのアップロードサイズは2Mですが、20Mなど8Mを超えるファイルをアップロードしたい場合は、upload_max_filesize = 20Mと設定する必要があります。

ただし、upload_max_filesize = 20M を設定するだけでは、依然として大きなファイルのアップロード機能を実現できません。POST に許可されるデータの最大バイト長を表す php.ini 設定ファイルの post_max_size オプションを変更する必要があり、デフォルトは 8M です。 。 POST データが制限を超えると、$_POST と $_FILES は空になります。大きなファイルをアップロードするには、このオプションの値を、upload_max_filesize コマンドの値より大きく設定する必要があります。通常は、upload_max_filesize と post_max_size の値を同じに設定します。さらに、メモリ制限が有効な場合、この値はmemory_limitオプションの値より小さくする必要があります。

ファイルアップロードに関するその他の注意点

大きなファイルをアップロードする際、アップロード速度が遅いと感じることがありますが、これはphpの設定上、スクリプトの実行時間が30秒を超えていることが原因です。 .ini 設定ファイル max_execution_time 設定オプションが問題を引き起こしています。これは各スクリプトの最大許容実行時間 (秒単位) を示し、0 は制限なしを意味します。 max_execution_time の値を適切に調整することはできますが、0 に設定することはお勧めできません。

この時点で、php.ini 設定ファイルでファイル アップロード オプションを設定するための PHP チュートリアルが紹介されました。上記の手順を実践して学習し、PHP プログラムと組み合わせることで、ファイル アップロード機能を実現できます。

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