>  기사  >  백엔드 개발  >  PHP가 1k 내의 파일만 업로드할 수 있다면 어떻게 해야 합니까?

PHP가 1k 내의 파일만 업로드할 수 있다면 어떻게 해야 합니까?

藏色散人
藏色散人원래의
2021-11-12 09:45:442085검색

php가 1k 이내의 파일만 업로드할 수 있는 문제에 대한 해결 방법: 1. php.ini 구성 파일을 찾아서 엽니다. 2. "client_max_body_size", "upload_max_filesize" 및 "post_max_size" 값을 수정합니다.

PHP가 1k 내의 파일만 업로드할 수 있다면 어떻게 해야 합니까?

이 글의 운영 환경: windows7 시스템, PHP7.1 버전, DELL G3 컴퓨터

php 1k 이내의 파일만 업로드할 수 있으면 어떻게 해야 하나요?

PHP 파일 업로드 제한 문제 해결 방법:

PHP 대용량 파일 업로드는 많은 리소스를 차지하므로 업로드 크기를 제한해야 합니다. 다음은 세 가지 관련 매개변수입니다.

client_max_body_size
upload_max_filesize
post_max_size

에 해당하는 세 가지 오류 보고서입니다. 위 정보 :

Warning: POST Content-Length of 9663102 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
$_FILES['file']['error']==1
nginx错误:413 Request Entiry Too Large

client_max_body_size는 클라이언트의 요청 본문 크기 상한을 설정하는 데 사용됩니다. 업로드할 파일이 본문에 있으므로 이 매개변수는 간접적으로 파일 업로드 크기에 대한 제한으로 간주될 수 있습니다.

nginx 서버는 요청 헤더의 Content-Length를 통해 본문의 크기를 결정합니다. 설정된 상한을 초과하면 오류 코드 413 Request Entity Too Large가 반환됩니다. 이 매개변수를 0으로 설정하면 길이 제한이 취소될 수 있습니다.

Syntax:    client_max_body_size size;
Default:   
client_max_body_size 1m;
Context:    http, server, location

client_max_body_size는 http, 서버 및 위치 블록에서 설정할 수 있으므로 도메인 이름이나 요청 주소에 대해 업로드된 패키지의 크기를 늘릴 수 있습니다.

php 오류:

Warning: POST Content-Length of 9663102 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

이때 업로드된 파일 크기가 post_max_size보다 큽니다.

php에서는 경고가 나오지 않지만 업로드된 파일을 가져올 수 없습니다

현재 $_FILES['file']['error']==1 오류가 발생하는 이유는 업로드된 파일의 크기가 post_max_size보다 작기 때문입니다. 그러나 upload_max_filesize보다 큽니다.

지식 포인트 확장:

PHP 및 Nginx 파일 업로드 크기 제한 문제에 대한 해결 방법

nginx+php를 사용하는 일부 웹사이트의 경우 업로드 파일 크기가 여러 측면에서 제한됩니다. 하나는 nginx 자체의 제한입니다. 고객 제한 클라이언트가 업로드한 파일의 크기 중 하나는 php.ini 파일의 여러 위치에 기본 설정으로 설정되어 있습니다.

그래서 업로드 파일 크기 제한 문제를 해결하려면 많은 수정이 이루어져야 합니다. 아래에 몇 가지 장소가 나열되어 있습니다.

1. /usr/local/nginx/conf/nginx.conf 파일을 수정하고 client_max_body_size를 검색하여 다음 값을 설정하려는 값으로 설정합니다. 예:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
     # 
     location ~ \.php$ { 
       root      /home/www/htdocs; 
       fastcgi_pass  127.0.0.1:9000; 
       fastcgi_index index.php; 
       fastcgi_param SCRIPT_FILENAME /home/www/htdocs$fastcgi_script_name; 
       include    fastcgi_params; 
   
       client_max_body_size 35m;    #客户端上传文件大小设为35M 
       client_body_temp_path /home/www/nginx_temp;    #设置临时目录 
     }

Appendix: Nginx에는 업로드 구성 요소가 있습니다:

업로드 속도, 업로드 본문 크기, 즉 업로드할 때 파일이 더 커질 수 있습니까?

client_max_body_size 1024M
upload_limit_rate 158k

는 다음과 같습니다. 업로드 속도가 느려집니다. 특정 시간을 초과하면 스크립트 실행이 30초를 초과한다고 오류가 보고됩니다. 이는 php.ini 구성 파일의 max_execution_time 구성 옵션이 문제를 일으키고 있기 때문입니다. 허용된 실행 시간(초), 0은 제한이 없음을 의미합니다. max_execution_time 값을 적절하게 조정할 수 있으며 0으로 설정하는 것은 권장되지 않습니다.

추천 학습: "

PHP 비디오 튜토리얼

"

위 내용은 PHP가 1k 내의 파일만 업로드할 수 있다면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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