내 서버에 많은 수의 이미지를 다운로드하고 다운로드가 완료되었을 때 사용자에게 알립니다.
-
18-09-2019 - |
문제
내 서버에 많은 양의 파일을 다운로드하고 싶습니다. 다운로드 할 다른 파일 목록과 위치 위치가 있습니다. 이 모든 것이 문제가되지 않습니다. 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 스크립트가 외부 명령이 완료 될 때까지 차단됩니다. 완료되면 완성 된 파일의 이름을 반향 할 수 있습니다.
제휴하지 않습니다 StackOverflow