내 서버에 많은 수의 이미지를 다운로드하고 다운로드가 완료되었을 때 사용자에게 알립니다.

StackOverflow https://stackoverflow.com/questions/2409318

문제

내 서버에 많은 양의 파일을 다운로드하고 싶습니다. 다운로드 할 다른 파일 목록과 위치 위치가 있습니다. 이 모든 것이 문제가되지 않습니다. wget을 사용하여 파일을 다운로드하고 Shell_Exec으로 실행합니다.

$command = 'wget -b -O' . $filenameandpathtoput . ' ' . $submission['url'];
shell_exec($command);

이것은 훌륭하게 작동하며 서버는 모든 스레드를 시작하고 파일은 즉시 다운로드됩니다.

문제는 파일을 다운로드 할 때 사용자에게 알리고 싶다는 것입니다. 그리고 이것은 현재의 작업 방식으로 작동하지 않습니다. 그렇다면 이것을 어떻게 구현 하시겠습니까?

모든 제안이 도움이 될 것입니다!

도움이 되었습니까?

해결책

모든 파일이 같은 것으로 제자리에 있는지 확인할 수 있다고 생각합니다.

function checkFiles ()
{
    foreach ($_SESSION["targetpaths"] as $p)
    {
        if (!is_file($p)) return false;
    }
    return true;
}

이제 서버 에서이 기능을 호출하는 스크립트를 호출하는 것입니다. 메타 새로 고침 (n 초 후에 페이지를 다시로드하도록 강요) 또는 ajax를 사용하여이를 수행 할 수 있습니다 (jQuery 's를 살펴보십시오. .getJSON, 예를 들어).

스크립트가 호출되고 파일이 아직 다운로드되지 않은 경우 "기다려주세요"와 같은 인쇄를 인쇄하고 나중에 다시 새로 고치십시오. 그렇지 않으면 성공 메시지를 표시하십시오. 그게 다야.

다른 팁

사용을 고려할 수 있습니다 exec 외부 wget 명령을 실행합니다. PHP 스크립트가 외부 명령이 완료 될 때까지 차단됩니다. 완료되면 완성 된 파일의 이름을 반향 할 수 있습니다.

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