ホームページ >バックエンド開発 >PHPの問題 >PHPでアップロード画像サイズを設定する方法

PHPでアップロード画像サイズを設定する方法

藏色散人
藏色散人オリジナル
2021-09-24 10:02:294566ブラウズ

php でアップロードされた画像のサイズを設定するメソッド: 1. 「php.conf」ファイルを開きます; 2. 「ini_set('max_input_time','90');」を設定します; 3. 「ini_set( 'post_max_size' , '12M');" 以上です。

PHPでアップロード画像サイズを設定する方法

この記事の動作環境: linux5.9.8 システム、PHP バージョン 7.1、Dell G3 コンピューター。

phpでアップロード画像のサイズを設定するにはどうすればよいですか?

PHP で画像ファイルのアップロード サイズを設定する方法

PHP のデフォルトのアップロード制限は最大 2M です。この設定を超えるファイルをアップロードする場合は、 、PHP、Apacheのいくつかのパラメータなどを調整する必要があります。

以下では、PHP ファイルのアップロードに関連するいくつかのパラメーターを簡単に紹介します。

file_uploads: HTTP 経由でのファイルのアップロードを許可するかどうかのスイッチ。デフォルトは ON です。

upload_tmp_dir: Upload_tmp_dir は、PHP によってアップロードされたファイルが配置される一時ディレクトリを記述するために使用されます。ファイルをアップロードする場合は、サーバーが一時ファイルを閉じていないこと、およびフォルダーに対する書き込み権限があることを確認する必要があります。指定しない場合、PHP はシステムのデフォルト値を使用します。

upload_max_filesize: アップロードできる最大ファイル サイズ。デフォルトは 2M です。

post_max_size: POST メソッドを使用したフォーム送信中に PHP が受信できるデータの最大量を制御します。 PHPファイルアップロード機能を使用する場合は、この値をupload_max_filesizeより大きく変更する必要があります。

max_input_time: POST、GET、PUT によるデータの受信時間を秒単位で制限します。アプリケーションが低速リンクで実行されている場合は、データの受信に必要な追加時間に対応するために、この値を増やす必要がある場合があります。

memory_limit: スクリプトの実行によってシステムで使用可能な大量のメモリが使用されるのを避けるために、PHP ではメモリ使用量の制限を定義できます。単一のスクリプトが使用できる最大メモリ容量を指定するには、memory_limit 変数を使用します。変数memory_limitの値は、post_max_sizeの値より適切に大きくする必要があります。

max_execution_time: max_execution_time は、PHP がスクリプトを強制終了するまでにスクリプトの実行を待機する時間を設定します。この時間は秒単位で計算されます。この変数は、スクリプトが無限ループに入った場合に役立ちます。ただし、完了までに時間がかかる正当なアクティビティ (大きなファイルのアップロードなど) がある場合、この機能により操作が失敗する可能性もあります。このような場合、重要なプロセスの実行中に PHP がスクリプトをシャットダウンしないように、この変数の値を増やすことを検討する必要があります。

Linux ホストの場合、/etc/httpd/conf.d/access.conf/ に php.conf ファイルが存在する場合があります。このファイルにより、一部のシステムのファイル サイズ制限の問題が解決される可能性があります。

次のコードを PHP アップロードに追加して、PHP が大きなファイルをアップロードできるように一時的に有効にします。

<?php  
//HTTP上传文件的开关,默认为ON即是开  
ini_set(&#39;file_uploads&#39;,&#39;ON&#39;);
//通过POST、GET以及PUT方式接收数据时间进行限制为90秒 默认值:60  
ini_set(&#39;max_input_time&#39;,&#39;90&#39;);
//脚本执行时间就由默认的30秒变为180秒  
ini_set(&#39;max_execution_time&#39;, &#39;180&#39;);
//Post变量由2M修改为8M,此值改为比upload_max_filesize要大  
ini_set(&#39;post_max_size&#39;, &#39;12M&#39;);
//上传文件修改也为8M,和上面这个有点关系,大小不等的关系。
ini_set(&#39;upload_max_filesize&#39;,&#39;10M&#39;);  
//正在运行的脚本大量使用系统可用内存,上传图片给多点,最好比post_max_size大1.5倍  
ini_set(&#39;memory_limit&#39;,&#39;20M&#39;);
?>

上記の変数が正常に変更されたかどうかを確認します。

<?php  
echo ini_get(&#39;file_uploads&#39;)."\n";   
echo ini_get(&#39;max_input_time&#39;)."\n";   
echo ini_get(&#39;max_execution_time&#39;)."\n";   
echo ini_get(&#39;post_max_size&#39;)."\n";   
echo ini_get(&#39;upload_max_filesize&#39;)."\n";   
echo ini_get(&#39;memory_limit&#39;)."\n";   
?>

In php.ini の変更には、3 つの値のサイズ制約関係が含まれます。これは一時的な解決策ですが、これを変更できない理由は、セーフ モードなどの PHP の動作モードに大きく関係しています。

ini_set 命令はセーフ モードでは使用できません: max_execution_time、memory_limit、child_terminate。

したがって、次の方法を使用して post_max_size と Upload_max_filesize を変更することはできません:

ini_set(&#39;post_max_size&#39;,&#39;10M&#39;); 
ini_set(&#39;upload_max_filesize&#39;,&#39;8M&#39;);

正しい方法は .htaccess ファイルを使用することです:

php_value upload_max_filesize 8M 
php_value post_max_size 10M

前提条件として、サイトは次のとおりです。 httpd 内。conf で設定:AllowOverride All。

PHP ドキュメントには、upload_max_filesize の変更可能な範囲は PHP_INI_PERDIR であると記載されています。 PHP_INI_PERDIR は、php.ini、httpd.conf、または .htaccess ファイルでドメイン ディレクティブを変更できることを意味します。 PHP_INI_SYSTEM ドメイン ディレクティブは、php.ini ファイルと httpd.conf ファイルで変更できます。したがって、upload_max_filesize は int_set を使用して変更できません。 int_setで変更できる範囲はPHP_INI_ALLのみです。

値を取得する方法:

if(@ini_get("file_uploads")) {
	$arrInfo[&#39;fileupload&#39;] = "允许 - 文件 ".ini_get("upload_max_filesize")." - 表单:".ini_get("post_max_size");
} 
else {
	$arrInfo[&#39;fileupload&#39;] = "<font color=&#39;red&#39;>禁止</font>";
}
if (get_cfg_var(&#39;register_globals&#39;)){
	$arrInfo[&#39;onoff&#39;] ="打开";
}else{
	$arrInfo[&#39;onoff&#39;] = "关闭";
}

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

以上がPHPでアップロード画像サイズを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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