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

本文主要介绍如何用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秒.这是国内无法想象的.

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

时间: 2024-09-20 15:34:46

用php实现远程网络文件下载到服务器的相关文章

ecplise既能启动远程网络tomcat服务器也能启动本地tomcat服务器吗

问题描述 ecplise既能启动远程网络tomcat服务器也能启动本地tomcat服务器吗 ecplise既能启动远程网络tomcat服务器也能启动本地tomcat服务器吗 解决方案 应该都可以,我亲自用eclisep启动过本地tomcat服务器

远程连接sql server服务器的方法

如果需要远程连接sql server 服务器,应该用什么方法呢?下面就将教您远程连接sql server服务器的解决方案,供您参考. 一 看ping 服务器IP能否ping通. 这个实际上是看和远程sql server 2000服务器的物理连接是否存在.如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确. 二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通. 如telnet 202.114.100.100 1433 通常端口值是14

远程连接SQLSERVER 2000服务器方法_MsSql

测试条件:一个公网IP,两个静态IP. 具体步骤: 一.ping服务器IP能否ping通 观察远程SQL Server 2000服务器的物理连接是否存在.如果不行,请检查,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确. 二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通 如telnet 202.114.100.100 1433 通常端口值是1433,因为1433是SQL Server 2000的对于Tcp/IP的默认侦听端口.如果有问题,通常这一步

远程连接SQLSERVER 2000服务器方法

测试条件:一个公网IP,两个静态IP. 具体步骤: 一.ping服务器IP能否ping通 观察远程SQL Server 2000服务器的物理连接是否存在.如果不行,请检查,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确. 二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通 如telnet 202.114.100.100 1433 通常端口值是1433,因为1433是SQL Server 2000的对于Tcp/IP的默认侦听端口.如果有问题,通常这一步

现在网站打不开怎么判断是网络不通还是服务器挂掉了

问题描述 如题急 解决方案 解决方案二:补充一下:现在无法远程到这个服务器,而且以这台机器为web服务器的网站也打不开,很可能是服务器挂掉了,但是要确定到底是网络的原因还是服务器的原因本人在深圳服务器在福建所以必须排除网络原因之后才能派人去福建.解决方案三:排除网络原因应该不难的,找个网络环境的好的朋友什么的,让他们登一次那个服务器.如果他们能登录,说明楼主的网络可能不是很好.否则,则可以认为是服务器的原因了.解决方案四:引用2楼的回复: 排除网络原因应该不难的,找个网络环境的好的朋友什么的,让

迅雷怎么做文件下载的服务器

问题描述 迅雷怎么做文件下载的服务器 大家好听说迅雷可以作为下载服务器请问有人做过吗?有没有思路什么的谢谢! 解决方案 是否要有个会员帐号才行呀.知道离线文件地址.之后的应该不难.

javascript-js判断网络文件(服务器文件)是否存在,火狐

问题描述 js判断网络文件(服务器文件)是否存在,火狐 需要支持火狐的,所以不能用ActiveXObject 项目有点急,求大神能解决,小弟感激不尽 解决方案 要在服务器端做,客户端js有安全问题,弄不了,ie除非要配置过安全,要不照样弄不了 解决方案二: http://www.cnblogs.com/peaceshow/archive/2012/08/09/2631007.html 解决方案三: js 判断服务器文件是否存在问题JS判断文件是否存在js 判断文件是否存在

远程管理域控服务器不小心网卡禁用了,还有什么解决的办法,求技术大拿分析解救在线等

问题描述 远程管理域控服务器不小心网卡禁用了,还有什么解决的办法,求技术大拿分析解救在线等 远程管理域控服务器不小心网卡禁用了,还有什么解决的办法,求技术大拿分析解救在线等 解决方案 网卡禁用了,这个你失去对它的控制了,除非找服务器机房的管理员帮你恢复,否则没办法.

C/S模式文献检索软件实现远程网络访问。

问题描述 C/S模式文献检索软件实现远程网络访问. 做毕业设计,老师让我做一个文献检索系统,用C#和sql server 做了一个C/S的,老师说我这个只能在本机上运行,要我做一个网络版的,具体要求也没说,我估计就是相同的软件在别的机子上也能访问到我的数据库.但是sql server 的各项远程配置都搞好了,就是不能够访问.求大神指导. 解决方案 局域网的话,sql server启用tcp/ip协议,远程访问,打开防火墙,这里连接字符串直接写对方ip,就可以直接连. 解决方案二: 先要看远程的机