php 根据URL下载远程图片、压缩包、pdf等文件到本地


Posted in PHP onJuly 26, 2019

1、此方法可以下载图片、压缩包、pdf(亲测),应该所有类型的文件都可以下载到本地,可以试一下

//远程路径,名称,文件后缀
function downImgRar($url,$rename,$ext){
  switch ($ext) {
    case 'jpg':    //下载图片
      $file_path = 'uploads/images/';      
      break;
    case 'png':    //下载图片
      $file_path = 'uploads/images/';      
      break;
    case 'pdf':    //下载PDF
      $file_path = 'uploads/pdf/';  
      break;
    case 'rar':    //下载压缩包
      $file_path = 'uploads/rar/';      
      break;
    case 'zip':    //下载压缩包
      $file_path = 'uploads/rar/';      
      break;
    default:
      $file_path = 'uploads/files/';      
    break;
  }
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
  $rawdata=curl_exec ($ch);
  curl_close ($ch);
  // 使用中文文件名需要转码
  $fp = fopen($file_path.iconv('UTF-8', 'GBK', $rename).".".$ext,'w');
  fwrite($fp, $rawdata);
  fclose($fp);
  // 返回路径
  return $_SERVER['DOCUMENT_ROOT'].$file_path.$rename.".".$ext;
}

2、下载压缩文件,这个只可以下载压缩文件

// 下载压缩包
function downRar($file_path)
{
  $file_name = '/uploads/rar/2009323162920-维C银翘片说明书.rar';
  $file_name = iconv("utf-8","gbk//IGNORE",$file_name); // 特别注意!特别注意!特别注意这里,windows下必须开转码,不然直接文件不存
  $file_path = $_SERVER['DOCUMENT_ROOT'] . $file_name;// 比如windows下这里我的是 "D:/web/public/uploads/rar/2009323162920-维C银翘片说明书.rar"
  //判断如果文件存在,则跳转到下载路径
  if (!file_exists($file_path)) {
    die("文件不存在!");
  }
  $fp = fopen($file_path, "r+") or die('打开文件错误');  //下载文件必须要将文件先打开。写入内存
  $file_size = filesize($file_path);
  //返回的文件流
  Header("Content-type:application/octet-stream");
  //按照字节格式返回
  Header("Accept-Ranges:bytes");
  //返回文件大小
  Header("Accept-Length:" . $file_size);
  //弹出客户端对话框,对应的文件名
  Header("Content-Disposition:attachment;filename=" . substr($file_name, strrpos($file_name, '/') + 1));
  //防止服务器瞬间压力增大,分段读取
  $buffer = 1024;
  while (!feof($fp)) {
    $file_data = fread($fp, $buffer);
    echo $file_data;
  }
  fclose($fp);
  die("下载成功!");
}

总结

以上所述是小编给大家介绍的php 根据URL下载远程图片、压缩包、pdf等文件到本地,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
第九节--绑定
Nov 16 PHP
php+mysql开源XNA 聚合程序发布 下载
Jul 13 PHP
使ecshop模板中可引用常量的实现方法
Jun 02 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 PHP
php 伪静态之IIS篇
Jun 02 PHP
php实现比较全的数据库操作类
Jun 18 PHP
php 无限级分类 获取顶级分类ID
Mar 13 PHP
示例详解Laravel的注册重构
Aug 14 PHP
PHP函数引用返回的实例详解
Sep 11 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
PHP中散列密码的安全性分析
Jul 26 #PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
Jul 26 #PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 #PHP
php使用socket调用http和smtp协议实例小结
Jul 26 #PHP
php使用curl模拟多线程实现批处理功能示例
Jul 25 #PHP
yii框架使用分页的方法分析
Jul 25 #PHP
php实现的生成排列算法示例
Jul 25 #PHP
You might like
一个域名查询的程序
2006/10/09 PHP
PHP5函数小全(分享)
2013/06/06 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
php计算整个目录大小的方法
2015/06/01 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
Bootstrap实现弹性搜索框
2016/07/11 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
Vue实现回到顶部和底部动画效果
2019/07/31 Javascript
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
使用tensorflow实现AlexNet
2017/11/20 Python
python学生管理系统代码实现
2020/04/05 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
python如何把字符串类型list转换成list
2020/02/18 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
Python sublime安装及配置过程详解
2020/06/29 Python
django跳转页面传参的实现
2020/09/17 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
在C#中如何实现多态
2014/07/02 面试题
学习委员自我鉴定
2014/01/13 职场文书
学校介绍信范文
2014/01/14 职场文书
村道德模范事迹材料
2014/08/28 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
python xlwt模块的使用解析
2021/04/13 Python
python实现双向链表原理
2022/05/25 Python