PHP가 큰 이미지를 업로드할 수 없는 문제에 대한 해결책: 1. php.ini를 열고 필요한 값으로 설정합니다. 3. "file_uploads = on"을 확인합니다. . 권한 설정 최대 업로드 파일 크기.
이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
PHP에서 큰 사진을 업로드할 수 없으면 어떻게 해야 합니까?
대용량 파일을 업로드할 수 없는 PHP를 위한 완벽한 솔루션
대용량 파일을 업로드할 수 없는 php.ini를 위한 완벽한 솔루션
1. php.ini를 엽니다(여는 방법은 말할 것도 없고 Baidu에는 많습니다).
2. post_max_size 찾기
최대 양식 제출 값은 단일 업로드 파일의 크기를 제한하지 않지만 전체 양식의 제출 데이터를 제한합니다.
기본값은 8m이며 필요한 값으로 설정하세요. . 이 매개변수는 upload_max_filesize보다 크게 설정하는 것이 좋습니다.
3. 파일 업로드 검색
http 스위치를 통한 파일 업로드 허용 여부는 file_uploads = on
4을 확인하세요. 서버에 임시 파일이 저장되는 위치입니다. 지정하지 않으면 시스템 기본값이 사용됩니다. 임시 폴더
시스템 오류에 "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보다 큰 파일을 업로드하려면 다음 매개변수도 설정해야 합니다.
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 이 구성 파일의 server 섹션에서 client_max_body_size 필드가
location / { root html; index index.html index.htm; client_max_body_size 1000m; }
에 추가되어 작동하지 않습니다. 어떻게 다시 시작해도 마찬가지입니다. 나중에 일반 구성 파일에서 하위 구성 파일을 찾았습니다.
코드는 다음과 같습니다.
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 양식 설정에 문제가 있는지 확인해야 합니다.
이 코드는 두 개의 파일로 나누어져 있습니다. 하나는 upload.html이고 다른 하나는 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['myfile']; $dest_dir=’uploads’;//设定上传目录 $dest=$dest_dir.’/’.date(ymd)._.$f['name'];//设置文件名为日期加上文件名避免重复 $r=move_uploaded_file($f['tmp_name'],$dest); chmod($dest, 0755);//设定上传的文件的属性
또는
<?copy($_files[myfile][tmp_name],$_files[myfile][name]);?>
위 예제의 $_files 배열 내용은 다음과 같습니다. 파일 업로드 필드의 이름은 userfile이라고 가정합니다(이름은 임의로 지정할 수 있음)
추천 학습: "
PHP Video Tutorial"
위 내용은 PHP가 큰 이미지를 업로드할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!