2011-04-29 4 views

답변

15

자신 만의 복사 기능을 작성해야합니다. 먼저이 솔루션 예를 들어, HTTP의 HEAD 요청을 통해 파일 크기를 확인 :

http://php.net/manual/en/function.filesize.php#92462

그런 다음 파일 가져 오기 위해이 작업을 수행 : 도움을

$remote = fopen('remote-file', 'r'); 
$local = fopen('local-file', 'w'); 

$read_bytes = 0; 
while(!feof($remote)) { 
    $buffer = fread($remote, 2048); 
    fwrite($local, $buffer); 

    $read_bytes += 2048; 

    //Use $filesize as calculated earlier to get the progress percentage 
    $progress = min(100, 100 * $read_bytes/$filesize); 
    //you'll need some way to send $progress to the browser. 
    //maybe save it to a file and then let an Ajax call check it? 
} 
fclose($remote); 
fclose($local); 
+0

고맙습니다, 우리는 이것을 사용할 수 있습니다 진행률 데이터를 jquery로 진행 막대를 만들려면 파일에 저장하거나 에코를 사용하여 인쇄 할 필요가 있습니까? –

+0

진행률을 파일에 저장해야한다고 생각합니다. 가장 좋은 방법은 루프 이전에 전체 파일 크기를 파일에 저장하는 것입니다. 그런 다음 파일 크기를 대상 파일의 크기 (filesize()로 읽음)와 비교하고 Jquery 호출에서 진행률을 계산할 수 있습니다. –

+0

파일을 저장하는 경우 한 번에 여러 사용자가 사용할 수 있도록 만드는 방법 –

1

copy() 통화에 대한 진행률 표시 줄을 얻을 수 없습니다.

관련 문제