当前位置: 首页 > 图文教程 > 网络编程 > PHP > 用php实现远程网络文件下载到服务器

PHP
php 清除网页病毒的方法
php 远程关机操作的代码
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
PHP 出现乱码和Sessions验证问题的解决方法!
php2html php生成静态页函数
中英文字符串翻转函数
php escape URL编码
PHP Google的translate API代码
php 文件状态缓存带来的问题
linux下 C语言对 php 扩展
php mssql 数据库分页SQL语句
php IP及IP段进行访问限制的代码
PHP 采集程序 常用函数
php 设计模式之 单例模式
php 设计模式之 工厂模式
php xml-rpc远程调用
php 获取完整url地址
PHP MSSQL 存储过程的方法
PDP Document 代码注释规范
PHP HTML代码串截取代码

PHP 中的 用php实现远程网络文件下载到服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 160 ::
收藏到网摘: n/a

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

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

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

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

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

 <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);
}
?>

当然还需要展示下asp版本的源码(未测试)

< %
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版本的源码(未测试)

   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);  
                }  
        }

注意事项:

1.相关的目录可能需要建立,具体请看源码.比如temp/、down/.

2.其中php版本的源码是支持自定义url的,但asp、asp.net版本的并没有提供自定义.

3.在拷贝大文件时,国内估计支持欠佳.因为考虑到程序的超时时间,但在国外支持很好.

比如Blinux将一个近300M的文件转移到另一个服务器上耗费时间是28秒.这是国内无法想象的.

最后希望大家反馈下使用效果.

原文链接地址:用php实现远程网络文件下载到服务器