PHP下载远程文件/图片到本地存储

热度:4002020-04-04 22:55 收藏 0 点赞 0

最近用的经常使用到远程下载文件的函数,省得每次搜索,记录一下备用


方法一:

function download($url, $path = 'images/')
{
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  $file = curl_exec($ch);
  curl_close($ch);
  if($file==false){
      exit('无法下载!');
  }
  $filename = pathinfo($url, PATHINFO_BASENAME);
  $resource = fopen($path . $filename, 'a');
  fwrite($resource, $file);
  fclose($resource);
}


方法二:

// 应用目录为当前目录
define('APP_PATH', __DIR__ . '/');
//获取下载链接
$remote_url = $_GET['url'];
if(strpos($remote_url,'http')===false){
	exit('链接错误!');
}
//取文件后缀名并拼接新文件
$dix = explode('.',$remote_url);
$filename = date('YmdHis').'.'.end($dix);
$tmp_path = APP_PATH.'public/'.$filename;
 try {
	set_time_limit(0);
	touch($tmp_path);
	// 做些日志处理
	if ($fp = fopen($remote_url, "rb")) {
		if (!$download_fp = fopen($tmp_path, "wb")) {
			exit('无法打开链接!');
		}
		while (!feof($fp)) {
			if (!file_exists($tmp_path)) {
				// 如果临时文件被删除就取消下载
				fclose($download_fp);
				exit('临时文件被删除');
			}
			fwrite($download_fp, fread($fp, 1024 * 8 ), 1024 * 8);
		}
		fclose($download_fp);
		fclose($fp);
	} else {
		exit('无法下载');
	}
} catch (Exception $e) {
	Storage::remove($tmp_path);
	exit('发生错误:'.$e->getMessage());
}



暂无评论
登录后才可以评论~立即登录

如何获取资源?

您可以关注底部公众号,回复文章提示的 “ 关键词 ” 获取对应资源。

每日分享

每日分享收集的网络资源,其中包含开源项目、小工具、常用软件,以及音频视频、电子书籍等。

外卖天天领红包,饿了么,美团红包天天都有!

外卖天天领红包,饿了么,美团红...

最低每顿可省2元

分享两个远程工具-ToDesk和向日葵

分享两个远程工具-ToDesk和向日葵...

在工作生活中经常用到远程,QQ远程很卡,第三方远程工具就比较方便了。

爱奇艺万能播放器2018年完整版

爱奇艺万能播放器2018年完整版

2018年的爱奇艺万能播放器,功能齐全,没有广告!

分享500套个人求职简历模板

分享500套个人求职简历模板

500套免费求职简历下载!

一款最近很火的自动跳过广告APP,无root直装版

一款最近很火的自动跳过广告APP,...

自动跳过广告,无需root

WPS免费去广告电脑软件

WPS免费去广告电脑软件

wps广告实在太多了,下载一个去广告版本