ホームページ > バックエンド開発 > PHPチュートリアル > PHP が大きなファイルをアップロードできない場合の完璧なソリューション_PHP チュートリアル

PHP が大きなファイルをアップロードできない場合の完璧なソリューション_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:16:18
オリジナル
872 人が閲覧しました

大きなファイルをアップロードできない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フィールドが追加されましたが、どのように再起動しても機能しません。後で、一般構成ファイルの中にサブ構成ファイルを見つけました:

コードは次のとおりです

ファイルを送信;
#tcp_nopush をオン;

#keepalive_timeout 0;
キープアライブ_タイムアウト 65;

#gzip オン;
ドメインを含める/*;
#include ドメイン/chat.local;
#include ドメイン/chat.erp.com;
#include ドメイン/support.chat.com;
#douains/chat.com を含める;

サーバー{
80を聞いてください。 サーバー名 ローカルホスト;

そこで、サブ設定ファイルを見つけて、サブ設定ファイルを修正しました。サブ設定ファイルの構成は次のとおりです:

コードは次のとおりですサーバー

/export/servers/nginx/sbin/nginx -s reload を使用して再起動すると、アップロードファイルサイズの制限の問題は解決されます。

私の解決プロセスを共有することで、皆さんのお役に立てれば幸いです。

それでも解決しない場合は、phpフォームの設定に問題があるかどうかを確認する必要があります

このコードは2つのファイルに分かれており、1つはupload.html、もう1つはupload.phpです

upload.html

{
聞いてください80;
サーバー名 chat.erp.360buy.com;
# access_log /export/servers/nginx/logs/chat.erp.360buy.com;
場所 / {
proxy_pass http://tomcat;
client_max_body_size 1000m;
}
}
コードは次のとおりです




その中で、

ご注意ください

これはタグです。ファイルをアップロードしたい場合は、multipart/form-data として指定する必要があります。そうしないと、サーバーは何をすべきかわかりません。

ファイルupload.htmlのフォームオプションMAX_FILE_SIZEの隠し値フィールドは、その値を設定することでアップロードされるファイルのサイズを制限できることに注意してください。

MAX_FILE_SIZE の値はブラウザに対する単なる提案であり、実際には簡単に回避できます。したがって、ブラウザの制限を制限するためにこの値に依存しないでください。実際、PHP 設定の最大アップロード ファイル サイズは無効になりません。ただし、フォームに MAX_FILE_SIZE を含めたほうがよいでしょう。ユーザーは、大きなファイルがアップロードされるのを待って時間を費やしてから、そのファイルが大きすぎることに気づくという手間を省くことができます。

upload.php

コードは次のとおりです
$f=&$HTTP_POST_FILES['マイファイル'];
$dest_dir=’uploads’;//アップロードディレクトリを設定します
$dest=$dest_dir.’/’.date("ymd")."_".$f['name'];//重複を避けるため、日付とファイル名を加えたファイル名を設定します
$r=move_uploaded_file($f['tmp_name'],$dest);
chmod($dest, 0755);//アップロードされたファイルの属性を設定します
または

上記例の$_FILES配列の内容は以下の通りです。ファイルアップロードフィールドの名前は userfile とする(名前は任意)

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/898884.html技術記事 php は大きなファイルをアップロードできません、完璧な解決策 php.ini は大きなファイルをアップロードできません、完璧な解決策 1. php.ini を開きます (開く方法は言うまでもなく、Baidu にはたくさんあります) 2. post_max_size テーブルを見つけます...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート