ホームページ >バックエンド開発 >PHPチュートリアル >PHP が大きなファイルをアップロードできない場合の完璧なソリューション_PHP チュートリアル
大きなファイルをアップロードできないphp.iniの完璧な解決策
1. php.iniを開きます(開き方は言うまでもなく、Baiduにたくさんあります)
2. post_max_size を見つける
フォーム送信の最大値 この項目は、アップロードされる単一のファイルのサイズを制限しませんが、フォーム全体の送信データを制限します。
デフォルトは 8M ですが、必要な値に設定してください。このパラメータは、upload_max_filesize より大きく設定することをお勧めします。3. ファイルのアップロードを探す
http 経由でのファイルのアップロードを許可するように切り替え、file_uploads = on を確認します
4.upload_tmp_dirを見つけます
ファイルは一時ファイルが保存されるサーバーにアップロードされます。指定しない場合は、システムのデフォルトの一時フォルダーが使用されます。
システムエラーで「XXX 一時ディレクトリ XXX」というメッセージが表示された場合は、このディレクトリに有効なディレクトリを設定する必要があります。エラーがない場合は、心配する必要はありません。5.upload_max_filesizeを見つけます
許可されるアップロード ファイルの最大サイズは、デフォルトは 2M です。必要な値に設定します。このパラメータの post_max_size 値を超えないようにすることをお勧めします。これは、post_max_size 値によって制御されるためです(upload_max_filesize が 1G に設定されている場合でも)。 、post_max_size は 2M にのみ設定されており、2M ファイルは post_max_size 値によって制御されるため、まだアップロードできません) よりも大きくなります)
6. 8M を超えるファイルをアップロードする場合は、次のパラメータも設定する必要があります:
各 PHP ページの実行時間の最大値 (秒) を探します max_execution_time = 600; デフォルトは 30 秒です
max_input_time = 600; 各 PHP ページがデータを受信するのに必要な最大時間、デフォルトは 60 秒です
Memory_limit = 8M; 各 PHP ページに必要な最大メモリ、デフォルトは 8M です
nginxメソッドを使用して大きなファイルをアップロードするための完璧なソリューション
1.client_body_buffer_size 速度を考慮してできるだけ大きく設定してください。設定が小さすぎると、アップロードされたファイルを常にディスクに書き込む必要があるため、速度が遅くなります。
2. client_body_temp_path パスには書き込み権限が必要です これは明らかな間違いです。ただ修正してください
3.client_max_body_size は、アップロードされるファイルの最大値を設定します。これは、通常のユーザーは大きすぎるファイルをアップロードしない、または基本的にしないと考えられます。
client_max_body_size 100m に設定することも、独自のビジネスに応じてこの値を設定することもできます。
例
nginxの設定。
コードは次のとおりです
この設定ファイルのサーバーセクションにある cd /export/servers/nginx/conf/nginx.conf | |||||||||||||||||
ルート HTML; インデックスindex.htmlindex.htm; client_max_body_size 1000m; }
client_max_body_sizeフィールドが追加されましたが、どのように再起動しても機能しません。後で、一般構成ファイルの中にサブ構成ファイルを見つけました:
その中で、 ご注意ください これはタグです。ファイルをアップロードしたい場合は、multipart/form-data として指定する必要があります。そうしないと、サーバーは何をすべきかわかりません。 ファイルupload.htmlのフォームオプションMAX_FILE_SIZEの隠し値フィールドは、その値を設定することでアップロードされるファイルのサイズを制限できることに注意してください。 MAX_FILE_SIZE の値はブラウザに対する単なる提案であり、実際には簡単に回避できます。したがって、ブラウザの制限を制限するためにこの値に依存しないでください。実際、PHP 設定の最大アップロード ファイル サイズは無効になりません。ただし、フォームに MAX_FILE_SIZE を含めたほうがよいでしょう。ユーザーは、大きなファイルがアップロードされるのを待って時間を費やしてから、そのファイルが大きすぎることに気づくという手間を省くことができます。 upload.php
上記例の$_FILES配列の内容は以下の通りです。ファイルアップロードフィールドの名前は userfile とする(名前は任意) |