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 相关文章推荐
php win下Socket方式发邮件类
Aug 21 PHP
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
PHP调用Linux的命令行执行文件压缩命令
Jan 27 PHP
PHP代码优化的53个细节
Mar 03 PHP
php中eval函数的危害与正确禁用方法
Jun 30 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
PHP实现将textarea的值根据回车换行拆分至数组
Jun 10 PHP
如何通过Linux命令行使用和运行PHP脚本
Jul 29 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
利用Laravel事件系统如何实现登录日志的记录详解
May 20 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 PHP
php策略模式简单示例分析【区别于工厂模式】
Sep 25 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
php快速url重写更新版[需php 5.30以上]
2010/04/25 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
Ext.MessageBox工具类简介
2009/12/10 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
微信JS接口大全
2016/08/25 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
Python利用命名空间解析XML文档
2020/08/10 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
英国日常交易网站:Wowcher
2018/09/04 全球购物
Tenstickers法国:墙贴和装饰贴纸
2019/08/26 全球购物
会计学应届毕业生推荐信
2013/11/04 职场文书
动物科学专业毕业生的自我评价
2013/11/29 职场文书
学雷锋的心得体会
2014/09/04 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
热血教师观后感
2015/06/10 职场文书
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers