我们学校的网速限制约为 7kb/s,我们有一些 300Mb 空间的 php 主机。但是a意识到我们的php脚本没有限制!
我想下载一个文件到我的主机,我确实在这个网站上找到了答案。
问题来了:我不能下载超过 300 Mb,而且我希望能够使用我朋友的帐户来加快我的下载速度(当然是在他们的许可下)。
我可以完全访问一台计算机(在学校),它可以将我的 less_then_300Mb_files 移动到它自己并让我下载其余的。
首先我写了这段代码:
<?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]);
?>
它在本地文件上运行良好,但fseek
& 其他一些命令在 URL 中运行不佳。
我希望它像IDM一样,能够恢复和暂停文件。另外,如果可能的话,我希望它使用多个请求下载。
我的功能有什么问题,如何下载文件的一部分?
更多信息:服务器是基于 linux
的我可以访问的计算机是 win7。
我知道 vb.net、php(!) 和一点 c++。