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 相关文章推荐
php4的session功能评述(二)
Oct 09 PHP
PHP中的array数组类型分析说明
Jul 27 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
Jul 03 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
非常重要的php正则表达式详解
Jan 04 PHP
使用symfony命令创建项目的方法
Mar 17 PHP
php与python实现的线程池多线程爬虫功能示例
Oct 12 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 PHP
如何在PHP中使用AES加密算法加密数据
Jun 24 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中使用模板的方法
2008/05/24 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
详解PHP中的PDO类
2015/07/06 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
javascritp添加url参数将参数加入到url中
2014/09/25 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
2019/05/27 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
共产党员公开承诺书
2014/03/25 职场文书
幼儿园家长寄语
2014/04/02 职场文书
新店开张活动方案
2014/08/24 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
违纪检讨书范文
2015/01/27 职场文书
律政俏佳人观后感
2015/06/09 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js