2012-05-23 4 views
0

약 4MB가 넘는 이미지를 업로드하려고하면 $ _FILES [ 'upload'] [ 'error']가 1을 반환하고 파일을 업로드하지 않습니다. 하지만 내 php.ini에서 upload_max_filesize를 20MB로 설정했습니다 ....이미지 크기가 upload_max_filesize 미만인 경우에도 파일 업로드가 오류를 반환합니다.

왜 오류가 발생합니까?

Heres는 PHP 코드가 php docs으로

if ($_FILES['upload']['error']) { 
    array_push($not_uploaded, $_FILES['upload']['name']); 
    if ($_FILES['upload']['error'] == 1) { 
    trigger_error('Iimage exceeded server php upload limit', E_USER_WARNING); 
    array_push($error_msgs, elgg_echo('services:image_mem')); 
    } else { 
    array_push($error_msgs, elgg_echo('services:unk_error')); 
      } 
} 
+0

phpinfo()는 올바른 php.ini 파일을 만듭니다. 대부분의 시스템은 최소한 2 개 (cli 및 Apache를 통해)를가집니다. –

+0

PHP 코드를 게시 해주십시오. 감사합니다! – doNotCheckMyBlog

+0

그 및 print_r ($ _ 파일) –

답변

0

말하는 오류를 확인하기 위해, 당신은 실제 파일 앞에 이름 MAX_FILE_SIZE으로 (가장 자주 숨겨진) 필드를 보내야합니다. 이론적으로 4MB조차도 그것 없이는 작동하지 않아야하지만, 이것은 하드 코드 된 디폴트 일 것입니다.

위에서 언급 한 PHP 문서 페이지의 예제 양식을 시작점으로 사용하십시오.

+0

오, 나는 MAX_FILE_SIZE에 대해 잘 몰랐다. 나는 파일 크기가 올라간 후에 항상 파일 크기를 확인해야한다고 생각했다. 이것은 유용합니다 :) – Mark

+0

실제로 MAX_FILE_SIZE는 표시 일 뿐이며 대부분의 브라우저는 무시하므로 PHP에서 크기를 확인하기 위해 파일을 업로드해야합니다. – Tio

+0

@Tio MAX_FILE_SIZE는 브라우저에 ** **뿐 아니라 POST 변수로 보내지고 PHP에 의해 구문 분석됩니다. 이것은'php.ini'에서 한계를 우회하는 데 사용할 수 있다는 것을 의미하지 않습니다. –

2

또한 php.ini 파일에서 post_max_size 변수의 구성을 확인해야합니다. PHP의 문서에서

: Common Pitfalls

post_max_size을 너무 작게 설정하면, 큰 파일은 업로드 할 수 없습니다. post_max_size를 충분히 크게 설정해야합니다.

+0

에 의해 보내 졌다고 언급하는 것을 잊어 버렸습니다. 문제가 해결되었습니다. – Mark

+0

좋아, 대답을 받아 들여야 해. – Tio

관련 문제