PHP实现远程下载文件到本地

   经常写采集器发布接口需要使用到远程附件的功能,所以自己写了一个PHP远程下载文件到本地的函数,一般情况下已经够用了,如果服务器支持CURL函数,程序则会优先选择CURL,有需要的小伙伴可以参考下。

  代码很简单就不多废话了,直接奉上:

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

<?php
echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif");
 
function httpcopy($url, $file="", $timeout=60) {
$file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
$dir = pathinfo($file,PATHINFO_DIRNAME);
!is_dir($dir) && @mkdir($dir,0755,true);
$url = str_replace(" ","%20",$url);
 
if(function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$temp = curl_exec($ch);
if(@file_put_contents($file, $temp) && !curl_error($ch)) {
return $file;
} else {
return false;
}
} else {
$opts = array(
"http"=>array(
"method"=>"GET",
"header"=>"",
"timeout"=>$timeout)
);
$context = stream_context_create($opts);
if(@copy($url, $file, $context)) {
//$http_response_header
return $file;
} else {
return false;
}
}
}
?>

  再来个远程下载文件到服务器

  ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

<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);
}
?>

  以上所述就是本文的全部内容了,希望大家能够喜欢。

时间: 2024-07-31 12:06:33

PHP实现远程下载文件到本地的相关文章

PHP实例代码:实现远程下载文件到本地的函数

  经常写采集器发布接口需要使用到远程附件的功能,所以自己写了一个PHP远程下载文件到本地的函数,一般情况下已经够用了,如果服务器支持CURL函数,程序则会优先选择CURL,因为测试结果表明CURL的响应时间及资源占用率比file_get_contents小得多;如果大家有好的建议及改进方案,欢迎留言给我哦! 代码: echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif"); function httpcopy($url,

PHP实现远程下载文件到本地_php实例

代码很简单就不多废话了,直接奉上: <?php echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif"); function httpcopy($url, $file="", $timeout=60) { $file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file; $dir = pathinfo($file,PATHINFO_DI

PHP实现从远程下载文件的方法

 这篇文章主要介绍了PHP实现从远程下载文件的方法,涉及php操作文件的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了PHP实现从远程下载文件的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?php if ($_GET[xfer]) { if ($_POST[from] == "") { print "You forgot to enter a url

java 下载 断点续传-用java语言从web下载文件到本地指定路径下

问题描述 用java语言从web下载文件到本地指定路径下 java语言实现从外部网站下载文件到我们公司的服务器上,支持断点续传并且用一个线程下载一个文件,请问哪位有什么思路或者源码参考.麻烦大家给我出出主意. 网上都是从服务器上下载到本地的案例.这种可以应用到我这种需求上吗? 顺便问下http协议和ftp协议下载文件是否支持下载到本地指定路径,对文件大小类型有没有限制. 解决方案 1.先用代码解析外部网站下载页面获取下载地址 2.代码实现http协议请求解析得到的下载地址,下载文件到本地 3.代

PHP实现从远程下载文件的方法_php技巧

本文实例讲述了PHP实现从远程下载文件的方法.分享给大家供大家参考.具体实现方法如下: <?php if ($_GET[xfer]) { if ($_POST[from] == "") { print "You forgot to enter a url."; } else { copy("$_POST[from]", "$_POST[to]"); $size = round((filesize($_POST[to])/

js自动下载文件到本地的实现代码_javascript技巧

复制代码 代码如下: <html> <head> <title>js自动下载文件到本地</title> <script language="javascript" type="text/javascript"> function InitAjax() { var ajax; if(window.ActiveXObject){ var versions = ['Microsoft.XMLHTTP', 'MSX

asp.net-从服务器上下载文件到本地不成功

问题描述 从服务器上下载文件到本地不成功 当项目在本地时正常,当项目布在服务器上面,下载的文件存储在服务器上.代码如下,怎么才能让文件保存在本地 Uri downUri = new Uri(@"http://wap.incake.net/voiceorderFile/NO7HhefxdIeQqzvbfw7EP8_U1Up3Vdzw0YfQ5vB_oaMQoZq4bfa5P-T-SqixZtXP8LK.mp3"); //建立一个WEB请求,返回HttpWebRequest对象 HttpW

SaveRemoteFile函数之asp实现保存远程的文件到本地的代码_应用技巧

'================================================== '过程名:SaveRemoteFile '作  用:保存远程的文件到本地 '参  数:LocalFileName ------ 本地文件名 '参  数:RemoteFileUrl ------ 远程文件URL '================================================== Function SaveRemoteFile(LocalFileName,Rem

SaveRemoteFile函数之asp实现保存远程的文件到本地的代码

'================================================== '过程名:SaveRemoteFile '作  用:保存远程的文件到本地 '参  数:LocalFileName ------ 本地文件名 '参  数:RemoteFileUrl ------ 远程文件URL '================================================== Function SaveRemoteFile(LocalFileName,Rem