>백엔드 개발 >PHP 문제 >PHP에서 업로드 이미지 크기를 설정하는 방법

PHP에서 업로드 이미지 크기를 설정하는 방법

藏色散人
藏色散人원래의
2021-09-24 10:02:294531검색

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";   
?>

php.ini에서 세 가지 값 제약 관계의 크기를 포함하여 수정합니다. . 따라서 이는 임시 해결책입니다. 이것이 수정될 수 없는 이유는 안전 모드와 같은 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에서 구성된다는 전제가 있습니다.

upload_max_filesize의 수정 가능한 범위는 PHP_INI_PERDIR이라고 PHP 문서에 명시되어 있습니다. PHP_INI_PERDIR은 php.ini, httpd.conf 또는 .htaccess 파일에서 도메인 지시문을 수정할 수 있음을 의미합니다. PHP_INI_SYSTEM 도메인 지시문은 php.ini 및 httpd.conf 파일에서 수정할 수 있습니다. 따라서 int_set을 사용하여 upload_max_filesize를 수정할 수 없습니다. 수정 가능한 범위는 PHP_INI_ALL 뿐입니다. int_set으로 수정할 수 있습니다.

값을 얻는 방법:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.