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

    前段时间一直在wordpress的在线更新是如果实现的。分析了一下,大致逻辑应该是先远程下载网络打包文件,然后解压执行替换。那么如何实现下载远程网络文件呢?今天无意间找到这段代码:
    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.相关的目录可能需要建立.
    2.其中php版本的源码是支持自定义url的,但asp、asp.net版本的并没有提供自定义.
    3.在拷贝大文件时,国内估计支持欠佳.因为考虑到程序的超时时间,但在国外支持很好.
    比如将一个近300M的文件转移到另一个服务器上耗费时间是28秒.这是国内无法想象的.

相关文章
解决远程连接服务器的最大连接数PHP服务器变量$_SERVER详解PHP中的正则表达式完整的editplus之php语法文件使用PHP通过GOOGLE翻译接口自动翻译文件PHP中rawurlencode将字符串编码成URL专用格式时与页面编码的关系全新学习PHP[第一天]PHP技巧:php过滤危险html代码php中计算时间差的几种方法PHP读取目录下所有文件的代码一个图形显示IP的PHP程序代码php下过滤HTML代码的函数ASP与PHP读取多张表(多张表的操作)越来越喜欢玩PHP了最近喜欢上PHP了[转载]关于ajax与php结合中文处理问题调用远程swf的方法远程MSSql数据库连接教程
    标签:php远程服务器 评论数:7 发布于:2009-09-16 06:10:02

当前共有7条评论,我也要发表:

    我的名字:

    我的邮箱:

    作者:precomx时间:2013-02-26 13:13:56回复

      没有解压并替换的代码?

      作者:SimonSu时间:2013-03-08 10:25:42回复

        没有,你去BAIDU找找吧

    作者:what时间:2012-02-25 13:12:01回复

      请问这个东西怎么用? 我打开以后出来两个框框,然后怎么填呢?谢谢

    作者:风吹走了我时间:2010-09-24 23:47:55回复

      这个东西我正需要呢,谢谢老大。我想远程复制wordpress

    作者:timmy时间:2010-05-16 14:03:41回复

      请问这是不是相当于服务器在下载一个文件,而与我本机无关?

      作者:simon时间:2010-05-16 14:10:36回复

        是的,就是直接把文件直接用这个程序下载存到了服务器上。

        作者:what时间:2012-02-25 13:15:46回复

          请问这个东西怎么用? 我打开以后出来两个框框,然后怎么填呢?麻烦告诉我一下,谢谢