문제

PHP에서 파일 업로드 진행률 표시 줄을 생성하는 방법을 아는 사람이 있습니까? 나는 종종 그것이 불가능하다고 들었습니다.

하나의 아이디어가 있지만 그것이 작동하는지 확실하지 않습니다. 일반 파일 업로드가 있지만 대신 iframe에 제출하십시오. 제출되면 세션에 파일 정보 (크기 및 임시 위치)를 저장하십시오. 동시에, 세션에 저장된 크기에 비해 파일의 크기를 확인하기 위해 10 초마다 Ajax 호출을 시작하십시오. 이렇게하면 크기가 Ajax로 반환 된 다음 진행률 표시 줄이 크기가 커지고 사용자에게 업로드 된 크기를 표시 할 수 있습니다.

생각?

도움이 되었습니까?

해결책

당신은 시도 할 수 있습니다 유아 또는 원기 또는 jQuery

다른 팁

당신은 그것을하는 방법을 거의 알아 냈습니다. 주요 문제는 업로드가 완료 될 때까지 업로드 된 파일의 크기에 일반적으로 액세스 할 수 없다는 것입니다.

APC 활성화, "apc_upload_progress"라는 필드를 포함하고 상태가있는 캐시 항목을 검색하려면 apc_fetch ()를 사용하는 경우이 정보에 액세스 할 수 있습니다.

UploadProgress라는 플러그인도 있지만 문서화가 잘 작성되지 않았으며 Windows에서 작동하지 않습니다 (마지막으로 확인한 마지막).

대안은 플래시를 사용하는 것입니다. 같은 스크립트를 참조하십시오 FancyUpload.

APC가 오기 전에 CGI 스크립트를 C에 텍스트 파일에 쓴 CGI 스크립트를 작성해야했습니다. APC는 지금이를 수행하는 훨씬 더 좋은 방법 인 것 같습니다.

도움이 되었기를 바랍니다.

지금 까지이 작업을 수행하는 가장 일반적인 방법은 Swfupload입니다. http://www.swfupload.org/

그러나, 그것은 ~이다 순수한 PHP로 가능하며 매우 어렵고 실험적입니다. 링크를 찾을 수 있는지 확인하겠습니다.

편집 : Php.net의 의견에 따르면 5.2 기준 업로드 진행 상황을 처리 할 수있는 후크가 있습니다. http://us.php.net/features.file-upload#71564

더 많은 설명 :

Rasmus의 예 :

PHP 5.4에서 세션 확장에 있습니다. http://php.net//manual/pl/session.upload-progress.php

순수한 PHP에서는 정확합니다. 불가능합니다.

당신이 이것을 ajax로 만들면, 당신은 당신이 묘사하는 것을 할 수 있습니다. 내가 본 유일한 진행률 측정기는 JavaScript 또는 Flash입니다. 그러나 Silverlight도 할 수 있다고 생각합니다.

"올드 스쿨", 그러나 a PHP + 기술: http://www.raditha.com/php/progress.php

내 생각에, 가장 좋은 / 가장 쉬운 솔루션은 '업로드'버튼과 진행률 표시 줄로 구성된 작은 플래시 위젯을 구축하는 것입니다. Flash는 지금까지 얼마나 많은 데이터를 업로드했는지에 대한 매우 자세한 피드백을 제공하며,이를 기반으로 멋진 진행률 표시 줄을 구축 할 수 있습니다. 서버의 비효율적 인 폴링이 필요하지 않으며 실제로 서버 코드를 전혀 변경할 필요가 없습니다. '플래시 업 로더'를위한 Google은 많은 사람들이 이미이 위젯을 작성했으며 돈을 위해 기꺼이 판매 할 수 있습니다.

나는 보는 것이 좋습니다 swfupload 당신이 원하는 것을 성취합니다. 상당히 유연하고 파일 대기열을 지원하므로 멀티 파일 업로드를 처리 할 수도 있습니다.

당신은 확실히 함께 가고 싶을 것입니다 Digitgerald의 FancyUpload. 그것은 mootools & swfuplaod 기반이며, 통계, 진보, ETA 등으로 멋진 대기열을 자랑합니다. 실제로 파일 업로드를 위해 본 가장 매끄러운 방법입니다. 내 개인 유스 케이스의 경우 ivé는 클라이언트가 1.2GB의 PDF 파일을 선택하고 업로드 할 수 있도록 사용했습니다. 새로운 이름이 이름 바뀌고 버전을 자동으로 바꾸고, 동일하게 건너 뜁니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top