ホームページ  >  記事  >  バックエンド開発  >  php で大きな画像をアップロードできない場合はどうすればよいですか?

php で大きな画像をアップロードできない場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2022-01-20 09:34:332156ブラウズ

php が大きな画像をアップロードできない問題の解決策: 1. php.ini を開きます; 2. post_max_size を見つけて、必要な値に設定します; 3. 「file_uploads = on」を確認します; 4.有効なディレクトリ; 5. アップロードできるファイルの最大サイズを設定します。

php で大きな画像をアップロードできない場合はどうすればよいですか?

この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、DELL G3 コンピューター

こんな場合はどうすればよいですか? phpでは大きな画像をアップロードできないのでしょうか?

php で大きなファイルをアップロードできません。完璧な解決策です。

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

1. php.ini を開きます (必要ありません)メソッドを開く (とはいえ、Baidu はたくさんあります)

2. post_max_size

フォーム送信の最大値を見つけます。この項目は、アップロードされる 1 つのファイルのサイズを制限しません, ただし、フォーム全体の送信データが制限されます。

デフォルトは 8m です。必要な値に設定します。このパラメータは、upload_max_filesize よりも大きく設定することをお勧めします。

3. ファイルの検索Uploads

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 によって制御されるため、アップされません) value)

6. 8m を超えるファイルをアップロードする場合は、次のパラメータも設定する必要があります:

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 に設定することも、独自のビジネスに応じてこの値を設定することもできます。

nginx 構成。

コードは次のとおりです:

cd /export/servers/nginx/conf/nginx.conf、この構成ファイルのサーバーセクションの

location / {
root html;
index index.html index.htm;
client_max_body_size 1000m;
}

に client_max_body_size を追加します。フィールド、いくら再起動しても機能しません。その後、一般構成ファイルの中にサブ構成ファイルを見つけました:

コードは次のとおりです:

sendfileon;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
include domains/*;
#include domains/chat.local;
#include domains/chat.erp.com;
#include domains/support.chat.com;
#include douains/chat.com;
server {
listen 80;
server_name localhost;

そこで、サブ構成ファイルを見つけて、サブ構成で変更しました。ファイル。サブ構成ファイルは次のように構成されています。

コードは次のとおりです:

server
{
listen 80;
server_name chat.erp.360buy.com;
# access_log /export/servers/nginx/logs/chat.erp.360buy.com;
location / {
proxy_pass;
client_max_body_size 1000m;
}
}

/export/servers/nginx/sbin/nginx -s reload で再起動し、制限付きの問題が解決されるようにします。アップロードファイルサイズが解決されました。

私の解決プロセスを共有してください。皆さんのお役に立てれば幸いです。

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

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

upload.html

コードは次のとおりです:

<form enctype=multipart/form-data action=upload.php method=post>
<input type=hidden name=max_file_size value=100000>
<input name=userfile type=file>
<input type=submit value=上传文件>
</form>

このうち、

注意してください

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

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

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

upload.php

コードは次のとおりです:

$f=&$http_post_files[&#39;myfile&#39;];
$dest_dir=’uploads’;//设定上传目录
$dest=$dest_dir.’/’.date(ymd)._.$f[&#39;name&#39;];//设置文件名为日期加上文件名避免重复
$r=move_uploaded_file($f[&#39;tmp_name&#39;],$dest);
chmod($dest, 0755);//设定上传的文件的属性

または

<?copy($_files[myfile][tmp_name],$_files[myfile][name]);?>

上記の例の $_files 配列の内容は次のとおりです。 。ファイルアップロードフィールドの名前はuserfileであると仮定します(名前は任意に付けることができます)

推奨学習: "PHPビデオチュートリアル"

以上がphp で大きな画像をアップロードできない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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