2011-05-08 2 views

답변

2

아니요, memory_limit는 post_max_size보다 클 필요가 없습니다.

PHP에는 요청 내용 유형에 따라 다른 POST 리더와 처리기가 있습니다. "multipart/form-data"(파일 전송에 사용되는 것)의 경우 rfc1867_post_handler은 혼합 리더/처리기의 역할을합니다. $_POST$_FILES을 채 웁니다. 무슨 메모리가 한계쪽으로 $_POST에 들어가고, 무엇이 들어가고 $_FILES도 포함됩니다.

그러나 $_FILES은 파일 자체에 대한 메타 데이터가 아닙니다. 그것들은 단지 디스크에 기록되므로 메모리 한계에 포함되지 않습니다.

+0

* "아니오, memory_limit는 post_max_size보다 클 필요가 없습니다."* 그가 링크 한 문서는 * 그래야한다고 제안합니다. * "일반적으로 'memory_limit'는'post_max_size'보다 커야합니다."* 환상적 링크 소스, 그래도! –

+1

기본적으로 말하는 것은 정상적인 방법으로 게시 된 파일이 파일을 디스크에 기록하는 해당 처리기에서 처리된다는 것입니다. 하지만이 코드는 메모리 버퍼 *에서 작동하는 것으로 보입니다.이 버퍼는 핸들러가 디스크에 파일을 쓰기 전에 파일 데이터가 메모리에 있으므로 (아마도 메모리 제한이있을 수 있음) 제안합니다. 나는 그것이 틀렸다는 것을 희망하지만, 코드의 조사가 어떻게 읽는 것 같아요. –

+0

@ t-j-crowder 나는 확실하지 않다. 내 이해는 그것이 정상적인 형태의 변수라면, 그것은 모두 메모리에 읽혀진다는 것입니다. 그러나 파일 인 경우 디스크에 임시 파일로 기록됩니다. [Line 903] (http://svn.php.net/viewvc/php/php-src/trunk/main/rfc1867.c?revision=302387&view=markup#l903) 및 [Line 1068] (http : /svn.php.net/viewvc/php/php-src/trunk/main/rfc1867.c?revision=302387&view=markup#l1068) – tyronegcarter

관련 문제