PHP의 $ _files 어레이는 비어 있습니다
-
06-07-2019 - |
문제
PHP 스크립트를 통해 파일을 업로드하려고하지만 내 $ _files 어레이는 항상 비어 있습니까? 파일 HTML 입력 요소의 내 $ _post 데이터 항목에는 파일 이름이 있습니다 ... 내 로컬 시스템에 파일이 생성되지 않습니다.
Temp 폴더에 대한 쓰기 액세스를 확인하고 설명을 설정했습니다. 파일 업로드가 활성화되어 있는지 확인하기 위해 phpinfo ()를 확인했습니다.
이것을 막을 수있는 것은 무엇입니까? mod_rewrite가 무엇인가를 일으킬까요?
감사!
해결책
적절한 ENCTYPE가있을 때 (<form method="post" enctype="multipart/form-data">
), 그런 다음 $ _files에서 errno 변수를 확인하십시오. 실패의 다양한 원인이 있습니다. 일반적인 경우 max_file_size가 초과됩니다.
http://php.net/manual/en/features.file-upload.errors.php
PHP 4.2.0 이후 PHP는 파일 배열과 함께 적절한 오류 코드를 반환합니다. 오류 코드는 PHP가 파일 업로드 중에 생성 된 파일 배열의 오류 세그먼트에서 찾을 수 있습니다. 다시 말해, 오류는 $ _files [ 'userfile'] [ 'error']에서 찾을 수 있습니다.
upload_err_ok 값 : 0; 오류가 없습니다. 파일은 성공으로 업로드되었습니다.
upload_err_ini_size 값 : 1; 업로드 된 파일은 php.ini의 upload_max_filesize 지시문을 초과합니다.
upload_err_form_size 값 : 2; 업로드 된 파일은 HTML 양식으로 지정된 Max_File_Size 지시문을 초과합니다.
등.
다른 팁
당신은 당신의 형태로 Enctype를 정의하고 있습니까?
<form method="post" enctype="multipart/form-data">
설정하지 않으면 파일이 업로드되지 않습니다.
양식에 올바른 ENCTYPE가 있습니까?
enctype="multipart/form-data"