2012-04-04 4 views
0

질문이 있습니다. 파일 업 로더가 있으며 각 사용자는 max_size : 30M을 업로드 할 수 있습니다. 이제 php.ini에서 설정해야 할 경험에 대해 알고 싶습니다.PHP 업로드 파일 php.ini

여기에 이미 변경 한 옵션,하지만 난 그게 최고입니다 있는지 확실하지 않습니다 : 여기에

upload_max_filesize = 30M 

post_max_size = 30M 

max_execution_time = 300 

max_input_time = 300 

memory_limit = 32M 

내가 memory_limit를 조금 낮은라고 생각합니다. 그리고 내가 더 포함해야 할 것이 있습니까? 30M 이상 업로드하려고 시도했을 때 Firefox가 다운되었습니다.

답장을 보내 주셔서 감사합니다.

+0

PHP 설정과 관련하여 파이어 폭스와 어떤 관계가 있습니까? 둘 다 완전히 다른 컴퓨터에서 실행됩니다. – hakre

+0

메모리 제한은 항상 upload_max/post_max 크기보다 약간 커야합니다 (게시/업로드 된 데이터/파일 공간과 스크립트 자체 내부 데이터 공간). –

+0

@hakre 브라우저가 php.ini와 아무런 관련이 없다는 것을 알고 있습니다. 이것은 또 다른 문제입니다. –

답변

0

파일을 많이 사용하는 경우 파일을 분할하여 별도의 부분에 업로드하면 서버가 거의 중단되지 않고 진행 상황을 확인할 수 있으며 많은 메모리와 실행 시간이 필요하지 않습니다. .

누군가가 그것이 사실이 아니라고 말한 ... 글쎄요. 유튜브 나 Megaupload (rip) 같은 사이트를 업로드하는 데 2GB의 메모리와 최대 2 시간의 시간을 사용하여 한 사용자의 파일을 업로드한다고 생각하지 않습니다. 30mb 파일을 업로드해야하는 경우 파일을 분할하고, 표준 PHP를 사용하면 업로드가 끝날 때까지 웹 서버가 질식합니다. 사용자가 신경 쓰지 않는 한 권장하지 않습니다. 가장 쉬운 해결책은 부분별로 업로드하는 것입니다. Flash/Silverlight/JS/HTML5 또는 원하는 방식으로 클라이언트 쪽에서 업로드 한 다음 서버쪽에 추가하면됩니다.

+0

흠 .. 어떻게해야할지 모르겠다. 예를 들어 내가 20M 영화를 업로드하는 경우 ... 아약스 업 로더이기 때문에 여러 파일을 하나씩 업로드 할 수있다. 업로드 파일을 하나씩 .... –

+0

그럼 어떻게 유튜브는 2GB의 파일을 업로드 할 수 있다고 생각합니까? 그들은 파일을 작은 덩어리로 분할하고 청크를 하나씩 업로드 한 다음 서버 측에 합류하고 2GB의 RAM 메모리를 사용하지 않으며 최대 스크립트 실행 시간도 2 시간을 사용하지 않습니다. 이를 수행하려면 클라이언트 측에서 파일을 분할해야합니다. 일반적으로 flash/silverlight/javascript/html5로 수행됩니다. – gosukiwi