当前位置:首页 > PHP教程 > php上传下载 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-08 10:22:01 浏览: 评论:0 

这篇文章主要介绍了php 根据URL下载远程图片、压缩包、pdf等文件到本地 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下。

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

  1. //远程路径,名称,文件后缀 
  2. function downImgRar($url,$rename,$ext){ 
  3.   switch ($ext) { 
  4.     case 'jpg':    //下载图片 
  5.       $file_path = 'uploads/images/';       
  6.       break
  7.     case 'png':    //下载图片 
  8.       $file_path = 'uploads/images/';       
  9.       break
  10.     case 'pdf':    //下载PDF 
  11.       $file_path = 'uploads/pdf/';   
  12.       break
  13.     case 'rar':    //下载压缩包 
  14.       $file_path = 'uploads/rar/';       
  15.       break
  16.     case 'zip':    //下载压缩包 
  17.       $file_path = 'uploads/rar/';       
  18.       break
  19.     default
  20.       $file_path = 'uploads/files/';       
  21.     break
  22.   } 
  23.   $ch = curl_init($url); 
  24.   curl_setopt($ch, CURLOPT_HEADER, 0); 
  25.   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  26.   curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); 
  27.   $rawdata=curl_exec ($ch); 
  28.   curl_close ($ch); 
  29.   // 使用中文文件名需要转码 
  30.   $fp = fopen($file_path.iconv('UTF-8''GBK'$rename).".".$ext,'w'); 
  31.   fwrite($fp$rawdata); 
  32.   fclose($fp); 
  33.   // 返回路径 
  34.   return $_SERVER['DOCUMENT_ROOT'].$file_path.$rename.".".$ext

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

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

Tags: php下载远程图片 php压缩包

分享到: