首页 > 语言 > PHP > 正文

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

2024-05-05 00:10:38
字体:
来源:转载
供稿:网友

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


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选