您的位置:首页 > 编程学习 > > 正文

php读取远程的txt文件(php 根据URL下载远程图片、压缩包、pdf等文件到本地)

更多 时间:2021-11-05 14:52:05 类别:编程学习 浏览量:264

php读取远程的txt文件

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

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

  • ?
  • 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
  • //远程路径,名称,文件后缀
  • 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、下载压缩文件,这个只可以下载压缩文件

  • ?
  • 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
  • // 下载压缩包
  • 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等文件到本地,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    原文链接:https://www.cnblogs.com/zxf100/archive/2019/07/26/11250101.html

    您可能感兴趣