PHP로 업로드한 파일이 적용되지 않으면 어떻게 해야 하나요?

coldplay.xixi
풀어 주다: 2023-03-03 13:58:01
원래의
3087명이 탐색했습니다.

PHP 파일 업로드가 적용되지 않는 해결 방법: 1. 파일을 업로드할 때 파일이 저장되는 임시 디렉터리는 PHP 프로세스 소유자 사용자가 열고 쓸 수 있어야 합니다. 2. [max_execution_time] 값은 충분히 커야 합니다.

PHP로 업로드한 파일이 적용되지 않으면 어떻게 해야 하나요?

PHP 파일 업로드가 작동하지 않는 솔루션:

사례 1: 파일 업로드 시 파일이 저장되는 임시 디렉터리가 열려 있어야 하며 해당 디렉터리는 PHP 프로세스 소유자 사용자가 쓸 수 있어야 합니다. 지정하지 않으면 PHP는 시스템 기본값을 사용합니다.

php.ini 파일의 upload_tmp_dir은 PHP에서 업로드한 파일이 저장되는 임시 디렉터리를 설명하는 데 사용됩니다. 파일을 업로드하려면 서버가 임시 파일을 닫지 않았는지, 해당 파일에 대한 쓰기 권한이 있는지 확인해야 합니다. 접는 사람.

사례 2: max_execution_time 값은 충분히 커야 합니다. max_execution_time 변수는 PHP가 스크립트를 강제로 종료하기 전에 완료될 때까지 기다리는 시간을 초 단위로 설정합니다. 이 변수는 스크립트가 무한 루프에 들어갈 때 유용합니다. 그러나 이 기능은 완료하는 데 오랜 시간이 걸리는 합법적인 활동(예: 대용량 파일 업로드)이 있는 경우 작업이 실패할 수도 있습니다. 그러한 경우, 스크립트가 일부 중요한 프로세스(예: 90초로 설정)를 수행하는 동안 PHP가 스크립트를 종료하지 않도록 이 변수의 값을 늘리는 것을 고려해야 합니다. max_execution_time 的值必须足够大。变量 max_execution_time 设置了在强制终止脚本前PHP等待脚本执行完毕的时间,此时间以秒计算。当脚本进入了一个无限循环状态时此变量非常有用。然而,当存在一个需要很长时间完成的合法活动时(例如上传大型文件),这项功能也会导致操作失败。在这样的情况下必须考虑将此变量值增大,以避免PHP在脚本正在执行某些重要过程的时候将脚本关闭,例如设置为 90 秒。

max_execution_time = 90
로그인 후 복사

注意在php函数中还有个set_time_limit 函数,和以上这个设置的作用是相同的,这两者的区别就是 以上是在 php.ini 文件中设置的,而set_time_limit 是写在php文件中的。所以也可以通过在页面中用 set_time_limit 设置程序的最长执行时间,比如无限制即:set_time_limit(0);

第3种情况:file_uploads = On 默认值为on,意思是允许通过 HTTP 进行文件上传,此选项不能设置为OFF。

第4种情况:upload_max_filesize = 2M 设定文件上传的大小的最大值,php.ini配置文件中的默认文件上传大小为2M,php初学者容易犯的一个错误是在编写文件上传功能时通过设置上传文件最大大小的表单区域,即允许上传文件的最大值,max_file_size(隐藏值域)的值来规定上传文件的大小,其实一般别人可以绕过这个值

所以安全起见,最好是在 php.ini 配置文件中配置 upload_max_filesize 选项,设定文件上传的大小。默认 upload_max_filesize = 2M,即文件上传的大小为2M,如果你想上传超过8M的文件,比如20M,你必须设定upload_max_filesize = 20M

第5种情况:post_max_size 这个值也必须足够大。这个变量也是一个同表单提交相关的变量,它限制的是客户端通过POST方法进行一次表单提交时PHP程序所能够接收的最大数据量。一般情况下,将此值的值设置的比 upload_max_filesize 略大即可,比如要上传20MB的文件,此值可以设置为 21MB。

第6种情况:max_input_time 此变量可以以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制。如果应用程序所运行环境处在网络比较慢的情况下,则需要增加此值以增大接收数据所需要的时间,比如将此值设置为 90秒。

max_input_time = 90
로그인 후 복사

第7种情况:memory_limit 也必须足够大,为了避免正在运行的脚本大量使用系统可用内存,PHP允许定义内存使用限额。通过memory_limit变量来指定单个脚本程序可以使用的最大内存容量。变量memory_limit的值应当适当大于post_max_size的值。

第8种情况:另外如果你的主机是 nginx 操作系统的话,如果以上操作都不行的话,记得在nginx 的配置文件里面加上

client_max_body_size 20m;
로그인 후 복사

这样一句,即表示最大允许上传20MB,具体根据自己的情况来。我的nginx 配置文件的位置在 /usr/local/nginx/conf/nginx.confrrreee

php 함수에는 set_time_limit 함수도 있는데 위 설정과 동일한 효과가 있습니다. 둘의 차이점은 위의 내용은 php.ini 파일에 설정되어 있는 반면 set_time_limit는 .php 파일. 따라서 페이지에서 set_time_limit를 사용하여 프로그램의 최대 실행 시간을 설정할 수도 있습니다. 예를 들어 무제한 시간: set_time_limit(0);

사례 3: file_uploads = On입니다. HTTP를 통해 진행하도록 허용합니다. 파일 업로드의 경우 이 옵션을 OFF로 설정할 수 없습니다.

🎜사례 4: 🎜upload_max_filesize = 2M 최대 파일 업로드 크기를 설정합니다. php.ini 구성 파일의 기본 파일 업로드 크기는 2M입니다. PHP 초보자가 흔히 저지르는 실수는 파일 업로드 기능의 크기입니다. 업로드된 파일은 업로드된 파일의 최대 크기, 즉 업로드가 허용된 파일의 최대값에 대한 양식 영역을 설정하여 지정되며, max_file_size(숨겨진 값 필드) 값은 실제로 일반적으로 다른 사람들이 우회할 수 있습니다. 이 값🎜🎜그래서 안전을 위해 가장 좋습니다. upload_max_filesize 옵션은 php.ini 구성 파일에 구성되어 파일 업로드 크기를 설정합니다. 기본 upload_max_filesize = 2M, 즉 파일 업로드 크기는 2M 등 8M를 초과하는 파일을 업로드하려면 upload_max_filesize = 20M를 설정해야 합니다. 🎜🎜🎜사례 5: 🎜post_max_size 이 값도 충분히 커야 합니다. 이 변수는 양식 제출과 관련된 변수이기도 하며, 클라이언트가 POST 메소드를 통해 양식을 제출할 때 PHP 프로그램이 수신할 수 있는 최대 데이터 양을 제한합니다. 일반적으로 이 값은 upload_max_filesize보다 약간 크게 설정할 수 있습니다. 예를 들어 20MB 파일을 업로드하려는 경우 이 값을 21MB로 설정하면 됩니다. 🎜🎜🎜사례 6: 🎜max_input_time 이 변수는 POST, GET 및 PUT을 통해 데이터를 수신하는 시간을 초 단위로 제한할 수 있습니다. 네트워크가 느린 환경에서 애플리케이션을 실행하는 경우 이 값을 늘려 데이터 수신에 필요한 시간을 늘려야 합니다. 예를 들어 이 값을 90초로 설정합니다. 🎜rrreee🎜🎜사례 7: 🎜memory_limit 도 충분히 커야 합니다. 스크립트 실행 시 시스템에서 사용 가능한 메모리를 많이 사용하지 않도록 하기 위해 PHP에서는 메모리 사용 제한을 정의할 수 있습니다. 단일 스크립트가 사용할 수 있는 최대 메모리 용량을 지정하려면 memory_limit 변수를 사용하십시오. 변수 memory_limit의 값은 post_max_size의 값보다 적절하게 커야 합니다. 🎜🎜🎜시나리오 8: 🎜또한 호스트가 nginx 운영 체제인 경우 위 작업이 실패하면 nginx 구성 파일에 🎜rrreee🎜 문장을 추가해야 합니다. 즉, 허용되는 최대 업로드 용량은 구체적으로 20MB입니다. 자신의 상황에 따라. 내 nginx 구성 파일의 위치는 /usr/local/nginx/conf/nginx.conf입니다. 🎜🎜🎜관련 학습 권장 사항: 🎜초보부터 마스터까지 PHP 프로그래밍🎜🎜🎜

위 내용은 PHP로 업로드한 파일이 적용되지 않으면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿