加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php借助header实现文件下载代码

发布时间:2022-07-18 14:04:41 所属栏目:PHP教程 来源:互联网
导读:在php中如果要实现下载如图片文件,php文件,html文件这些文件我们如果在网站上点击都是直接打开了,如果要实现下载我们可以利用php header函数来操作. 例1,代码如下: function download($file_url,$new_name=){ if(!isset($file_url) || trim($file_url)==){ r
  在php中如果要实现下载如图片文件,php文件,html文件这些文件我们如果在网站上点击都是直接打开了,如果要实现下载我们可以利用php header函数来操作.
 
  例1,代码如下:
 
  function download($file_url,$new_name=''){
   if(!isset($file_url) || trim($file_url)==''){
    return '500';
   }
   if(!file_exists($file_url)) { //检查文件是否存在
    return '404';
   }
    header("Content-type: application/octet-stream");
   header("Accept-Ranges: bytes");
   header("Accept-Length: ".filesize($file_url));
   header("Content-Disposition: attachment; filename=".$file_name);
   //输出文件内容
   echo fread($file_type,filesize($file_url));
   fclose($file_type);
  }
  例2,以下php代码可以解决:
 
  <?
  if( emptyempty($_GET['FileName'])|| emptyempty($_GET['FileDir'])|| emptyempty($_GET['FileId'])){
      echo'<script> alert("非法连接 !"); location.replace ("index.php") </script>'; exit();
   if   (!file_exists($file_dir.$file_name))   {   //检查文件是否存在   
    echo   "文件找不到";   
    exit;     
    }   else   {   
  $file = fopen($file_dir . $file_name,"r"); // 打开文件
  // 输入文件标签
  Header("Content-type: application/octet-stream");
  Header("Accept-Ranges: bytes");
  Header("Accept-Length: ".filesize($file_dir . $file_name));
  Header("Content-Disposition: attachment; filename=" . $file_name);
  // 输出文件内容
  echo fread($file,filesize($file_dir . $file_name));
  fclose($file);
  exit();
  }
  ?>
  直接下载文件,代码如下:
 
  <?php    
  $file = get_file_address();// 文件的真实地址(支持url,不过不建议用url)    
     
  if (file_exists($file)) {    
      header('Content-Description: File Transfer');    
      header('Content-Type: application/octet-stream');    
      header('Content-Disposition: attachment; filename='.basename($file));    
      header('Content-Transfer-Encoding: binary');    
      header('Expires: 0');    
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0');    
       flush();    
      readfile($file);    
      exit;    
  }    
  ?>
  小提示,header函数不只是可以实现文件下载,他还有很多的功能,如发送404,301等等状态信息都是可以的

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读