这是我搬家的时候找到的一段代码,在php环境下将远程文件下载保存到服务器指定文件夹,个人感觉很有用,所以就拿上来分享给大家。有时候在转移备份压缩包或者大文件的时候,例如100M或者更大的文件,这段代码能起到很大的作用,免去了自己下载文件再上传的过程,也免去了请客服转移的等待时间据说400M的视频只用了一分钟不到就转移完了,当然转移速度取决于两台服务器的性能和网速。

说说我的应用吧,我是用这段代码直接从WP官方下载WP程序到当前服务器,然后再解压,省去了自己下载再上传的繁琐过程。不多说了,上代码。

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">         
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn">         
  3. <head>         
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />         
  5. <meta http-equiv="Content-Language" content="UTF-8" />         
  6. </head>         
  7. <form method="post">         
  8. <input name="url" size="20" />         
  9. <input name="submit" type="submit" />         
  10. <!-- <input type="hidden" name="MAX_FILE_SIZE" value=http://www.php100.com/html/webkaifa/PHP/PHP/2010/0507/"2097152" />-->         
  11. </form>         
  12. <?php         
  13. set_time_limit (24 * 60 * 60);         
  14. if (!isset($_POST['submit'])) die();         
  15. $destination_folder = './downfolde/';   // 文件夹保存下载文件。必须以斜杠结尾        
  16. $url = $_POST['url'];         
  17. $newfname = $destination_folder . basename($url);         
  18. $file = fopen ($url"rb");         
  19. if ($file) {         
  20. $newf = fopen ($newfname"wb");         
  21. if ($newf)         
  22. while(!feof($file)) {         
  23. fwrite($newffread($file, 1024 * 8 ), 1024 * 8 );         
  24. }         
  25. }         
  26. if ($file) {         
  27. fclose($file);         
  28. }         
  29. if ($newf) {         
  30. fclose($newf);         
  31. }         
  32. ?>   

使用方法:复制本段代码,保存为Php格式上传到web,然后访问这个文件,把要下载的链接复制进空白框框里,再点击提交查询就可以了,自动下载保存到指定文件夹。

需要注意:当你发现原本100M的文件,才50M,不要删除文件,还在下载中,你再刷新一下FTP就可以看见文件变大了,下载速度取决于两台服务器的性能。(有的服务器有限制下载速度)一旦提交下载命令,要停止下载就只有把FTP里你下载的那个文件删掉。(一提交下载命令就有文件了)

特别注意:使用完后需尽快删除此文件,被坏人发现了很危险,因为任何人都可以提交下载命令。

标签: PHP

已有 2 条评论

  1. 采集~

    1. 是滴,不过挺好用的。

添加新评论