어제 PHP 웹 사이트 개발에서 세션 기능을 구현하기 위해 php.ini를 구성하는 방법에 대한 PHP 튜토리얼을 공유했습니다. 오늘은 PHP를 사용하여 파일 업로드 기능을 구현할 때 몇 가지 주요 php.ini 구성을 계속 공유하겠습니다.
php.ini의 파일 업로드 구성에 대해 말하자면, 사실 예전에 PHP 파일 업로드 함수 코드 예제 튜토리얼과 Jquery AjaxUpload 구현 파일 업로드 함수 코드 예제 튜토리얼을 소개할 때 언급한 적이 있습니다. PHP 파일 업로드 기능 구성에는 주로 php.ini 구성 파일의 upload_tmp_dir, upload_max_filesize, post_max_size와 같은 옵션이 포함됩니다.
php.ini의 파일 업로드 기능에 대한 구성 옵션 설명
php.ini 구성 파일을 열고 파일 업로드를 찾으세요
file_uploads = 켜기
HTTP 파일 업로드는 기본적으로 허용되며 이 옵션을 OFF로 설정할 수 없습니다.
upload_tmp_dir =
기본값은 비어있습니다. 이 옵션은 PHP 실행 환경을 수동으로 구성할 때 잊어버리기 쉽습니다. 이 옵션을 구성하지 않으면 파일 업로드 시 파일이 저장되는 임시 디렉터리를 설정할 수 없습니다. . 이 옵션에 upload_tmp_dir ='/leapsoulcn'과 같은 값을 할당해야 합니다. 이는 C 드라이브 디렉터리에 leapsoulcn 디렉터리가 있음을 의미합니다. 이는 Linux 환경의 경우 세션 구성과 동일합니다. 이 디렉토리에 쓰기 가능 권한을 부여해야 합니다.
8M가 넘는 대용량 파일은 어떻게 업로드하나요?
대용량 파일 업로드에는 주로 upload_max_filesize 및 post_max_size의 두 가지 옵션 구성이 포함됩니다.
php.ini 구성 파일의 기본 파일 업로드 크기는 2M입니다. PHP 초보자들이 자주 저지르는 실수 중 하나는 파일 업로드 기능 작성 시 업로드되는 파일의 최대 크기에 대한 양식 영역을 설정하는 것입니다. 업로드가 허용되는 파일의 최대 크기입니다. max_file_size(숨겨진 값 필드) 값에 따라 업로드되는 파일의 크기가 결정됩니다. 실제로 일반적으로 다른 사용자는 이 값을 무시할 수 있으므로 안전상의 이유로 upload_max_filesize 옵션을 구성하는 것이 가장 좋습니다. php.ini 구성 파일에서 파일 업로드 크기를 설정합니다.
기본 upload_max_filesize = 2M, 즉 파일 업로드 크기는 2M입니다. 예를 들어 20M 등 8M를 초과하는 파일을 업로드하려면 upload_max_filesize = 20M를 설정해야 합니다.
그러나 upload_max_filesize = 20M 설정만으로는 대용량 파일의 업로드 기능을 구현할 수 없습니다. php.ini 구성 파일에서 POST에 허용되는 데이터의 최대 바이트 길이를 나타내는 post_max_size 옵션을 수정해야 하며 기본값은 8M입니다. . POST 데이터가 제한을 초과하면 $_POST 및 $_FILES가 비어 있게 됩니다. 대용량 파일을 업로드하려면 이 옵션의 값을 upload_max_filesize 명령의 값보다 크게 설정해야 합니다. 저는 보통 upload_max_filesize와 post_max_size 값을 동일하게 설정합니다. 또한 메모리 제한이 활성화된 경우 이 값은 memory_limit 옵션 값보다 작아야 합니다.
파일 업로드 관련 기타 참고사항
대용량 파일을 업로드할 때 업로드 속도가 느리다는 것을 느끼실텐데요, 일정 시간을 초과하면 스크립트 실행이 30초를 초과한다는 오류가 발생합니다. 이는 php.ini의 max_execution_time 구성 옵션 때문입니다. 구성 파일이 문제를 일으키고 있습니다. 이는 각 스크립트의 최대 허용 실행 시간(초)을 나타내며 0은 제한이 없음을 의미합니다. max_execution_time 값을 적절하게 조정할 수 있으며 0으로 설정하는 것은 권장되지 않습니다.
이제 php.ini 구성 파일에서 파일 업로드 옵션을 구성하는 PHP 튜토리얼이 소개되었습니다. 위 단계의 실습과 학습을 통해 PHP 프로그램과 결합하면 파일 업로드 기능을 구현할 수 있습니다. .
몇 가지 추가 사항은 다음과 같습니다.
이 문서에서는 PHP 파일 업로드 기능을 구현하기 위해 php.ini를 구성하는 방법을 설명합니다. 여기에는 upload_tmp_dir, upload_max_filesize, post_max_size 및 php.ini 구성 파일의 기타 옵션이 포함됩니다. 이러한 옵션은 파일 업로드 성공 또는 실패의 열쇠입니다. Windows 버전의 php.5.3.5를 예로 들어 보겠습니다.
php.ini 파일 업로드 기능 설정 옵션 안내
텍스트 도구(EditPlus 권장)를 사용하여 php.ini 구성 파일을 열고 파일 업로드를 찾으세요. 이 영역에는 다음 3가지 옵션이 있습니다.
file_uploads = 켜기
HTTP 파일 업로드 허용 여부. HTTP 파일 업로드를 허용하려면 기본값이 On이며, 이 옵션을 Off로 설정할 수 없습니다.
upload_tmp_dir =
파일 업로드를 위한 임시 저장 디렉터리입니다. 지정하지 않으면 PHP는 시스템의 기본 임시 디렉터리를 사용합니다. 이 옵션은 기본적으로 비어 있습니다. 이 옵션은 PHP 실행 환경을 수동으로 구성할 때 잊어버리기 쉽습니다. 이 옵션을 구성하지 않으면 이 옵션에 upload_tmp_dir = "와 같은 값을 할당해야 합니다. d:/fileuploadtmp". D 드라이브 디렉터리에 fileuploadtmp 디렉터리가 있고, 이 디렉터리에 읽기 및 쓰기 권한이 부여되었음을 의미합니다.
upload_max_filesize = 2M
업로드되는 파일의 최대 크기입니다. 이 옵션의 기본값은 2M입니다. 즉, 파일 업로드 크기는 2M입니다. 50M 파일을 업로드하려면 upload_max_filesize = 50M를 설정해야 합니다.
그러나 upload_max_filesize = 50M 설정만으로는 대용량 파일의 업로드 기능을 실현할 수 없습니다. php.ini 파일에서 post_max_size 옵션도 수정해야 합니다.
php.ini에서 계속해서 데이터 처리를 찾으세요. 이 영역에는 1가지 옵션이 있습니다:
post_max_size = 8M
은 폼에 있는 모든 값을 포함하여 폼을 통해 PHP로 POST를 통해 받을 수 있는 최대값을 의미합니다. 기본값은 8M입니다. POST 데이터가 제한을 초과하면 $_POST 및 $_FILES가 비어 있게 됩니다.
대용량 파일을 업로드하려면 이 옵션의 값을 upload_max_filesize 옵션의 값보다 크게 설정해야 합니다. 예를 들어 upload_max_filesize = 50M를 설정하면 post_max_size = 100M로 설정할 수 있습니다.
또한 메모리 제한이 활성화된 경우 이 값은 memory_limit 옵션 값보다 작아야 합니다.
php.ini에서 계속해서 리소스 제한을 찾으세요. 이 영역에는 3가지 옵션이 있습니다.
max_execution_time = 30
각 PHP 페이지가 실행되는 최대 시간 값(초)이며 기본값은 30초입니다. 50M 파일과 같은 더 큰 파일을 업로드하는 경우 완료하는 데 몇 분이 걸릴 수 있습니다. 그러나 기본 PHP 페이지 실행 시간은 30초를 초과하면 스크립트 실행이 중지됩니다. 웹페이지를 열 때 오류가 발생합니다. 따라서 max_execution_time = 600과 같이 더 큰 값을 설정할 수 있습니다. 0으로 설정하면 시간 제한이 없음을 의미합니다.
max_input_time = 60
요청 데이터를 구문 분석하기 위해 각 PHP 스크립트에서 사용하는 시간(초)이며 기본값은 60초입니다. 대용량 파일을 업로드할 때 이 값을 더 크게 설정할 수 있습니다. 0으로 설정하면 시간 제한이 없음을 의미합니다.
메모리 제한 = 128M
이 옵션은 단일 PHP 스크립트가 적용할 수 있는 최대 메모리 공간을 설정하는 데 사용됩니다. 이는 잘못 작성된 스크립트가 서버에서 사용 가능한 메모리를 차지하는 것을 방지하는 데 도움이 됩니다. 메모리 제약 조건이 필요하지 않으면 이 값을 -1로 설정합니다.
php5.2.0 이전 버전의 기본값은 8M입니다. php.5.2.0 버전의 기본값은 16M입니다. PHP 5.2.0 이후 버전은 기본적으로 128M입니다.
파일 업로드 기능의 php.ini 구성 예
50M의 대용량 파일을 업로드한다고 가정해 보겠습니다. php.ini를 다음과 같이 구성합니다:
file_uploads = 켜짐
upload_tmp_dir = "d:/fileuploadtmp"
upload_max_filesize = 50M
post_max_size = 100M
max_execution_time = 600
max_input_time = 600
memory_limit = 128M
팁: memory_limit > post_max_size > upload_max_filesize를 유지해야 합니다.
이 예시는 참고용이므로 실제 상황에 따라 조정할 수 있습니다.