PHP에서 copy()
함수의 상태를 얻는 방법을 알아야합니다.PHP에서 복사 기능의 진행 상태를 얻는 방법은 무엇입니까?
이 기능을 사용하여 원격 파일을 다운로드하고 있으며이 프로그램의 진행률 표시 줄을 원합니다.
PHP에서 copy()
함수의 상태를 얻는 방법을 알아야합니다.PHP에서 복사 기능의 진행 상태를 얻는 방법은 무엇입니까?
이 기능을 사용하여 원격 파일을 다운로드하고 있으며이 프로그램의 진행률 표시 줄을 원합니다.
자신 만의 복사 기능을 작성해야합니다. 먼저이 솔루션 예를 들어, 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);
copy()
통화에 대한 진행률 표시 줄을 얻을 수 없습니다.
고맙습니다, 우리는 이것을 사용할 수 있습니다 진행률 데이터를 jquery로 진행 막대를 만들려면 파일에 저장하거나 에코를 사용하여 인쇄 할 필요가 있습니까? –
진행률을 파일에 저장해야한다고 생각합니다. 가장 좋은 방법은 루프 이전에 전체 파일 크기를 파일에 저장하는 것입니다. 그런 다음 파일 크기를 대상 파일의 크기 (filesize()로 읽음)와 비교하고 Jquery 호출에서 진행률을 계산할 수 있습니다. –
파일을 저장하는 경우 한 번에 여러 사용자가 사용할 수 있도록 만드는 방법 –