ホームページ  >  記事  >  バックエンド開発  >  php の大きなファイルをアップロードできないのはなぜですか?

php の大きなファイルをアップロードできないのはなぜですか?

不言
不言オリジナル
2018-07-09 17:51:361918ブラウズ

この記事では、PHP で大きなファイルのアップロードが失敗する原因と解決策を主に紹介します。一定の参考値があります。今、みんなに共有します。困っている友達は参考にしてください。

#php.ini は大きなファイルをアップロードできません 解決策

1. php.ini# を開きます。

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 を超えるファイルをアップロードする場合は、次のパラメータも設定する必要があります: (アップロード時間制限の変更)

#Find max_execution_time = 600; 各 PHP ページの実行にかかる最大時間値 (秒)、デフォルトは 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 に設定することも、独自のビジネスに応じてこの値を設定することもできます。

#1. php.ini を開きます

##2. post_max_size を見つけます: (アップロード サイズ制限を変更します)

フォーム送信の最大値。この項目はアップロードされる 1 つのファイルのサイズを制限しませんが、フォーム全体の送信データを制限します。デフォルトは 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. 8 メートルを超えるファイルをアップロードするには、次のパラメータも設定する必要があります: (アップロード時間制限を変更します)

max_execution_time = 600 を探します。それぞれの最大時間です。実行する PHP ページ 値 (秒)、デフォルトは 30 秒です

max_input_time = 600; 各 PHP ページがデータを受信するのに必要な最大時間、デフォルトは 60 秒です

memory_limit = 8m; 各 PHP ページに必要な最大メモリ、デフォルトは 8mです

大きなファイルをアップロードするための nginx メソッドsolution

1.client_body_buffer_size 速度を考慮して、できるだけ大きく設定してください。設定が小さすぎると、アップロードされたファイルを常にディスクに書き込む必要があるため、速度が低下します。

2.client_body_temp_path パスには書き込み権限が必要ですが、これは明らかな間違いです。修正してください

3.client_max_body_size はアップロードされるファイルの最大値を設定します。これはセキュリティ上の考慮事項に基づいています。通常のユーザーは大きすぎるファイルをアップロードしない、または基本的にアップロードしないと考えられます。 。

client_max_body_size 100m に設定することも、独自のビジネスに応じてこの値を設定することもできます。

以上がこの記事の全内容です。皆様の学習にお役に立てれば幸いです。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

php でのヒアドキュメントの使用

php での後の静的バインディング # ##################################

以上がphp の大きなファイルをアップロードできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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