用php实现远程网络文件下载到服务器
本文主要介绍【yào jiè shào】如何用📜php程序实🖋现将远【xiàn jiāng yuǎn】程网络👓文件下【wén jiàn xià】🥎载到自己的主【jǐ de zhǔ】✊机(服务器、虚拟主【xū nǐ zhǔ】👂机)上,当然也提供asp、asp.net的源码给大家参考【cān kǎo】.
最近让🚵 Lc. 下载【xià zǎi】💖《汪洋中的一条🈸船》这部感人的励志电视剧【jù】,为了分【wéi le fèn】💡享方便【xiǎng fāng biàn】🏻,于是我提供一个【gè】Godaddy的免费FTP.
考虑到稳定性【wěn dìng xìng】🍟和专一性,我想重🚠新开启一个【yī gè】godaddy的免费【de miǎn fèi】空间🍑,但是此时已经【shí yǐ jīng】上传了【shàng chuán le】两集,一共是【yī gòng shì】🧥400多兆.怎么办🌔呢🌴?
于是乎我想起了之前【le zhī qián】😃转移空【zhuǎn yí kōng】间时用到的一📚个🧡php文件,他可以【tā kě yǐ】🌏下载远程网络【chéng wǎng luò】文件到👣服务器【fú wù qì】上【shàng】,也就是只要是🔎可以下【kě yǐ xià】载的url,就可以转移到📂新的服务器【fú wù qì】上【shàng】.
废话不☕多说,直接亮出将远程网络【chéng wǎng luò】🐖文件下【wén jiàn xià】🍢载到服【zǎi dào fú】务器的php源码(测试通【cè shì tōng】过,很好很🚢强大).
<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); } ?> |
当然还【dāng rán hái】需要展💧示下asp版本的【bǎn běn de】🐚源码(未测试)
< % 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版本的📌源码【yuán mǎ】🐳(未测试【wèi cè shì】) using System; |
注意事项:
1.相关的【xiàng guān de】🤷目录可【mù lù kě】能需要建立【jiàn lì】,具体请看源码🥗.比如🎫temp/、down/.
2.其中👼php版本的【bǎn běn de】源码是支持自【zhī chí zì】定义🍮url的【de】,但【dàn】asp、asp.net版本的【bǎn běn de】并没有🏨提供自🍀定义🍮.
3.在拷贝🌂大文件【dà wén jiàn】时,国内估【guó nèi gū】计支持【jì zhī chí】欠佳.因为考虑到程【lǜ dào chéng】📟序的超时时间,但在国🙌外支持很好🤺.
比如Blinux将一个近300M的文件【de wén jiàn】🌧转移到另一个【lìng yī gè】🍅服务器👨上耗费🐮时间是【shí jiān shì】28秒.这是国【zhè shì guó】内无法想象的.
最后希望大家反馈下使用效果.
关键词:php,服务器
阅读本文后您有什么感想? 已有 人给出评价!
- 1
- 2
- 1
- 1
- 1
- 1