当前位置:首页 > PHP文摘 > 列表

PHP安全下载文件的方法

发布:smiling 来源: PHP粉丝网  添加日期:2019-10-08 12:42:04 浏览: 评论:0 

本文实例讲述了PHP安全下载文件的方法。分享给大家供大家参考,具体如下:

  1. <?php 
  2.  
  3. header('Content-Type:text/html;Charset=utf-8'); 
  4.  
  5. define('ROOT_PATH', dirname(__FILE__)); 
  6.  
  7. /** 
  8.  
  9.  * 下载文件 
  10.  
  11.  * @param string $file_path 绝对路径 
  12.  
  13.  */ 
  14.  
  15. function downFile($file_path) { 
  16.  
  17.   //判断文件是否存在 
  18.  
  19.   $file_path = iconv('utf-8''gb2312'$file_path); //对可能出现的中文名称进行转码 
  20.  
  21.   if (!file_exists($file_path)) { 
  22.  
  23.     exit('文件不存在!'); 
  24.  
  25.   } 
  26.  
  27.   $file_name = basename($file_path); //获取文件名称 
  28.  
  29.   $file_size = filesize($file_path); //获取文件大小 
  30.  
  31.   $fp = fopen($file_path'r'); //以只读的方式打开文件 
  32.  
  33.   header("Content-type: application/octet-stream"); 
  34.  
  35.   header("Accept-Ranges: bytes"); 
  36.  
  37.   header("Accept-Length: {$file_size}"); 
  38.  
  39.   header("Content-Disposition: attachment;filename={$file_name}"); 
  40.  
  41.   $buffer = 1024; 
  42.  
  43.   $file_count = 0; 
  44.  
  45.   //判断文件是否结束 
  46.  
  47.   while (!feof($fp) && ($file_size-$file_count>0)) { 
  48.  
  49.     $file_data = fread($fp$buffer); 
  50.  
  51.     $file_count += $buffer
  52.  
  53.     echo $file_data
  54. //phpfensi.com 
  55.   } 
  56.  
  57.   fclose($fp); //关闭文件 
  58.  
  59.  
  60. downFile(ROOT_PATH . '/down/Sunset.jpg'); 
  61.  
  62. ?> 

Tags: PHP下载文件

分享到: