html5中文学习网

您的位置: 首页 > 网络编程 > PHP编程 » 正文

用php实现远程网络文件下载到服务器_PHP教程_编程技术

[ ] 已经帮助:人解决问题
本文主要介绍如何用php程序实现将远程网络文件下载到自己的主机(服务器、虚拟主机)上,当然也提供asp、asp.net的源码给大家参考.

最近让 Lc. 下载《汪洋中的一条船》这部感人的励志电视剧,为了分享方便,于是我提供一个Godaddy的免费FTP.NX5HTML5中文学习网 - HTML5先行者学习网

考虑到稳定性和专一性,我想重新开启一个godaddy的免费空间,但是此时已经上传了两集,一共是400多兆.怎么办呢?NX5HTML5中文学习网 - HTML5先行者学习网

于是乎我想起了之前转移空间时用到的一个php文件,他可以下载远程网络文件到服务器上,也就是只要是可以下载的url,就可以转移到新的服务器上.NX5HTML5中文学习网 - HTML5先行者学习网

废话不多说,直接亮出将远程网络文件下载到服务器的php源码(测试通过,很好很强大).NX5HTML5中文学习网 - HTML5先行者学习网

 <form method="post">
<input name="url" size="50" />
<input name="submit" type="submit" />
</form>
< ?php
// maximum execution time in seconds
set_time_limit (24 * 60 * 60);
if (!isset($_POST['submit'])) die();
// folder to save downloaded files to. must end with slash
$destination_folder = 'temp/';
 
$url = $_POST['url'];
$newfname = $destination_folder . basename($url);
$file = fopen ($url, "rb");
if ($file) {
$newf = fopen ($newfname, "wb");
if ($newf)
while(!feof($file)) {
fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
}
}
if ($file) {
fclose($file);
}
if ($newf) {
fclose($newf);
}
?> NX5HTML5中文学习网 - HTML5先行者学习网

当然还需要展示下asp版本的源码(未测试)NX5HTML5中文学习网 - HTML5先行者学习网

< %
function   downfilea(d_target,   s_target)
On   Error   Resume   Next  
    dim   myhttp,   objstream
    set   myhttp   =   server.createobject( "MSXML2.XMLHTTP ")
    myhttp.open   "GET ",   d_target,   false
    myhttp.send()
    set   objstream   =   Server.CreateObject( "adodb.stream ")  
    objstream.Type   =   1  
    objstream.Mode   =   3  
    objstream.Open
    objstream.Write   myhttp.responseBody
    objstream.SaveToFile   s_target,   2
    if   err.number   <>   0   then   err.Clear
end   function
 
downfilea   "http://www.abc.com/xxx.rar ",   Server.MapPath( "down/xxx.rar ")
Response.write   "ok "
%>
还有asp.net版本的源码(未测试)NX5HTML5中文学习网 - HTML5先行者学习网

   using   System;  
  using   System.Net;  
  using   System.IO;  
 
  class   DownloadFile;  
      {  
        static   void   Main(string[]   args)  
            {  
                //你的远程文件  
                string   siteURL="http://www.abc.com/xxx.rar";  
                //下载到本地的路径及文件名  
                string   fileName="c://xxx.rar";  
                //实例化一个WebClient  
                WebClient   client=new   WebClient();  
                //调用WebClient的DownloadFile方法  
                client.DownloadFile(siteURL,fileName);  
                }  
        }
 NX5HTML5中文学习网 - HTML5先行者学习网

注意事项:NX5HTML5中文学习网 - HTML5先行者学习网

1.相关的目录可能需要建立,具体请看源码.比如temp/、down/.NX5HTML5中文学习网 - HTML5先行者学习网

2.其中php版本的源码是支持自定义url的,但asp、asp.net版本的并没有提供自定义.NX5HTML5中文学习网 - HTML5先行者学习网

3.在拷贝大文件时,国内估计支持欠佳.因为考虑到程序的超时时间,但在国外支持很好.NX5HTML5中文学习网 - HTML5先行者学习网

比如Blinux将一个近300M的文件转移到另一个服务器上耗费时间是28秒.这是国内无法想象的.NX5HTML5中文学习网 - HTML5先行者学习网

最后希望大家反馈下使用效果.
 NX5HTML5中文学习网 - HTML5先行者学习网

NX5HTML5中文学习网 - HTML5先行者学习网
NX5HTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助