우리 학교의 인터넷 속도 제한은 약 7kb/s이며 300Mb 공간이있는 일부 PHP 호스트가 있습니다. 그러나 우리 PHP 스크립트에는 아무런 제한이 없다는 것을 깨달았습니다!일부 파일을 서버를 통해 PHP를 사용하여 서버에 다운로드
내 호스트에 파일을 다운로드하고 싶습니다. 은이이 사이트에서 answer을 찾았습니다.
여기에 문제가 있습니다 : 300MB가 넘는 용량을 다운로드 할 수 없으며 내 친구의 계정을 사용하여 다운로드 속도를 높이고 싶습니다 (물론 허가하에).
나는 less_then_300Mb_ 파일을 스스로 옮길 수있는 컴퓨터 (학교 내)에 대한 모든 권한을 가지고 있으며 나머지는 다운로드 할 수 있습니다. 그것은 로컬 파일에 잘 작동하지만 fseek
& 다른 명령의 URL에서 잘 작동하지 않는
<?php
function downloadfile ($url, $path){
$step=1024;
$fsize=0;
if(file_exists($path))
$fsize=filesize($path);
$dlsize=filesize($url);
echo "$fsize<br>$dlsize<br>";
$file = fopen ($url, "rb");
if ($file)
{
$newf = fopen ($path, "ab");
fseek($newf,$fsize);
fseek($file,$fsize);
if($newf)
while(ftell($newf)<$dlsize)
{
if($dlsize-ftell($newf)<$step)
fwrite($newf, fread($file, $dlsize-ftell($newf)), $dlsize-ftell($newf));
else
fwrite($newf, fread($file, $step), $step);
}
}
if ($file)
fclose($file);
if ($newf)
fclose($newf);
}
$url=$_GET['url'];
$exp=explode("/",$url);
downloadfile($url,$exp[count($exp)-1]);
?>
:
내가이 코드를 작성 시작합니다.IDM과 같아서 에 이력서를 일시 중지하고 파일을 일시 중지 할 수 있습니다. 또한 가능하다면 복수 요청을 사용하여 다운로드하려고합니다.
내 기능에 문제가 있는데 어떻게 파일의 일부를 다운로드합니까?
자세한 내용은 : 서버는 난에 액세스 할 수있는 컴퓨터가 WIN7가
입니다 기반의 리눅스입니다.
나는 vb.net, PHP (!) 및 비트 C++를 알고 있습니다.
파일을 다운로드하는 서버는 부분 파일 다운로드를 지원해야합니다. 이는 모든 서버에서 지원되지는 않습니다. 대역폭이 관리되는 방식 (예 : 중간에 프록시가있는 경우)에 따라 부분 다운로드가 중단 될 수도 있습니다. 가능한 경우 부분 다운로드를 지원하는 서버를 사용하여 테스트 해보십시오. –
서버가 부분 파일 다운로드를 지원하는지 어떻게 확인할 수 있습니까? (그런데, 서버는 파일을 다운로드 할 수 있지만 아무런 손상도 없다는 보증은 없습니다!) 2102 M OPENCV !, 나머지 40 MB는 idm에 의해 집에 있습니다!) – aliqandil
좋은 질문입니다. 내가 생각할 수있는 유일한 방법은 다운로드를 다시 시작하고 파일 다운로드를 시작하고 중지 한 다음 다시 시작할 수있는 브라우저를 사용하는 것입니다. 정상적으로 다시 시작되면 서버는 부분 다운로드를 지원합니다. Chrome/Chromium이이를 지원한다고 확신합니다. –