php实现将远程文件下载保存到服务器指定文件夹
这是我搬家的时候找到的一段代码,在php环境下将远程文件下载保存到服务器指定文件夹,个人感觉很有用,所以就拿上来分享给大家。有时候在转移备份压缩包或者大文件的时候,例如100M或者更大的文件,这段代码能起到很大的作用,免去了自己下载文件再上传的过程,也免去了请客服转移的等待时间据说400M的视频只用了一分钟不到就转移完了,当然转移速度取决于两台服务器的性能和网速。
说说我的应用吧,我是用这段代码直接从WP官方下载WP程序到当前服务器,然后再解压,省去了自己下载再上传的繁琐过程。不多说了,上代码。
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="Content-Language" content="UTF-8" />
- </head>
- <form method="post">
- <input name="url" size="20" />
- <input name="submit" type="submit" />
- <!-- <input type="hidden" name="MAX_FILE_SIZE" value=http://www.php100.com/html/webkaifa/PHP/PHP/2010/0507/"2097152" />-->
- </form>
- <?php
- set_time_limit (24 * 60 * 60);
- if (!isset($_POST['submit'])) die();
- $destination_folder = './downfolde/'; // 文件夹保存下载文件。必须以斜杠结尾
- $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);
- }
- ?>
使用方法:复制本段代码,保存为Php格式上传到web,然后访问这个文件,把要下载的链接复制进空白框框里,再点击提交查询就可以了,自动下载保存到指定文件夹。
需要注意:当你发现原本100M的文件,才50M,不要删除文件,还在下载中,你再刷新一下FTP就可以看见文件变大了,下载速度取决于两台服务器的性能。(有的服务器有限制下载速度)一旦提交下载命令,要停止下载就只有把FTP里你下载的那个文件删掉。(一提交下载命令就有文件了)
特别注意:使用完后需尽快删除此文件,被坏人发现了很危险,因为任何人都可以提交下载命令。
采集~
是滴,不过挺好用的。