2013-04-02 3 views
1

제가 만든 작은 응용 프로그램을 테스트하고 있었고 어떤 크기를 초과하는 여러 파일을 업로드 할 때 이상한 동작을 보았습니다.PHP가 이상한 동작을 업로드했습니다.

나는 여기에 언급 된 the bug을 읽었지만 그 길은 오래 전에 읽었다. 이상하게도, 나는 그 사람이 버그에서 언급 한 것과 같은 행동을 경험한다.

  1. 작은 크기 (각각 50-300kb)로 10 개의 파일을 업로드하면 아무 문제가 없으며 응용 프로그램이 작동합니다.
  2. 1.5mb의 파일 두 개를 업로드 할 때 최대 허용 크기가 512kb 인 오류 메시지가 응용 프로그램에서 출력됩니다 (php.ini에서 2MB).
  3. 업로드 할 때 크기가 7 또는 8MB를 초과하는 파일 (정확한 크기를 찾지 못했습니다)이 있으면 오류없이 PHP가 충돌합니다. 내가 개발 서버에 있기 때문에 오류가 켜져 있고 일반적으로 치명적인 오류가 표시됩니다.
  4. 1 개의 파일 (예 : 25mbs)을 업로드해도 동일한 오류가 발생합니다.

글쎄, 나는 내가 var_dump($_FILES) 또는 var_dump($_POST)하려고 할 때 그것이 적어도 이름이나 무엇을 제출해야하지만 배열이 null을 반환하기 때문에 충돌 말한다.

tmp 폴더를 검사했는데 파일도 거기에 저장되어 있지 않습니다. 그러나, 이상한 행동은 내가이 신비한 한도를 초과하는 파일을 업로드 할 때, 브라우저가 업로드하는 것 같다 (나는 페이지가로드되는 데 시간이 걸린다는 것을 알 수있다.)하지만, 언급 한 것처럼 PHP는 아무것도 모르는 것처럼 동작한다.

이 이상한 행동의 재연이 될 수있는 것은 무엇입니까?

추신 : 저는 Windows 7 64 비트에서 localhost (wampserver)를 사용하고 있습니다.

편집

솔루션 발견

변경 post_max_size을 8메가바이트에서 뭔가 다른 내 문제를 해결했다. 포스트 데이터의

세트 최대 허용 크기 : 여기

가 필요로하는 사람들을위한 the manual에서 인용 한 것입니다. 이 설정은 업로드 파일에도 영향을 미칩니다. 대용량 파일을 업로드하려면이 값이 upload_max_filesize보다 커야합니다. configure 스크립트에서 메모리 제한을 사용하면 memory_limit도 파일 업로드에 영향을줍니다. 일반적으로 memory_limit는 post_max_size보다 커야합니다. 정수가 인 경우 값은 바이트 단위로 측정됩니다. 이 FAQ의 에 설명 된 것처럼 속기 표기법을 사용할 수도 있습니다. 게시물 데이터의 크기가 post_max_size보다 큰 인 경우 $ _POST 및 $ _FILES 총구는 비어 있습니다. 이것은 다양한 방법으로 추적 할 수 있습니다. $ _GET 변수를 데이터를 처리하는 스크립트에 전달하고 $ _GET [ 'processed']이 설정되어 있는지 확인하십시오.

+0

PHP와 Apache를 수동으로 설치하지 않는 이유는 무엇입니까? 또는 XAMP로 시도하십시오. –

답변

1

업로드 제한이 매우 작기 때문에 오류가 발생했습니다. upload_max_filesize or post_max_size입니다. php.ini는 200MB로 값을 모두 올리면이 오류가 발생합니다.

+0

이미 업로드 크기를 변경하려고했지만 여전히 동일한 동작을 시도했습니다. –

+0

하지만 post_max_size를 잊어 버렸습니다;) 감사합니다. –

+0

변경 후 wamp 서버를 새로 고침 (재시작) 했습니까? – mukund

1

서버에 게시 할 수있는 한도가 있습니다. 너의 512kb이어야한다. phpinfo()를 체크인 할 수 있습니다.

php.ini의 매개 변수는 upload_max_filesize라고 생각합니다. 더 큰 크기로 변경하십시오.

관련 문제