国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php利用header實現文件下載代碼

2024-09-04 11:44:52
字體:
來源:轉載
供稿:網友

在php中如果要實現下載如圖片文件,php文件,html文件這些文件我們如果在網站上點擊都是直接打開了,如果要實現下載我們可以利用php header函數來操作.

例1,代碼如下:

  1. function download($file_url,$new_name=''){ 
  2.  if(!isset($file_url) || trim($file_url)==''){ 
  3.   return '500'
  4.  } 
  5.  if(!file_exists($file_url)) { //檢查文件是否存在 
  6.   return '404'
  7.  } 
  8.  $file_name=basename($file_url); 
  9.  $file_type=explode('.',$file_url); 
  10.  $file_type=$file_type[count($file_type)-1]; 
  11.  $file_name=trim($new_name=='')?$file_name:urlencode($new_name).'.'.$file_type
  12.  $file_type=fopen($file_url,'r'); //打開文件 
  13.  //輸入文件標簽 
  14.  header("Content-type: application/octet-stream"); 
  15.  header("Accept-Ranges: bytes"); 
  16.  header("Accept-Length: ".filesize($file_url)); 
  17.  header("Content-Disposition: attachment; filename=".$file_name); 
  18.  //輸出文件內容 
  19.  echo fread($file_type,filesize($file_url)); 
  20.  fclose($file_type); 

例2,以下php代碼可以解決:

  1. <? 
  2. ifemptyempty($_GET['FileName'])|| emptyempty($_GET['FileDir'])|| emptyempty($_GET['FileId'])){ 
  3.     echo'<script> alert("非法連接 !"); location.replace ("index.php") </script>'exit(); 
  4. $file_name=$_GET['FileName']; 
  5. $file_dir=$_GET['FileDir']; 
  6. $FileId=$_GET['FileId']; 
  7. $file_dir = $file_dir."/"
  8. if   (!file_exists($file_dir.$file_name))   {   //檢查文件是否存在   
  9.   echo   "文件找不到";   
  10.   exit;     
  11.   }   else   {   
  12. $file = fopen($file_dir . $file_name,"r"); // 打開文件 
  13. // 輸入文件標簽 
  14. Header("Content-type: application/octet-stream"); 
  15. Header("Accept-Ranges: bytes"); 
  16. Header("Accept-Length: ".filesize($file_dir . $file_name)); 
  17. Header("Content-Disposition: attachment; filename=" . $file_name); 
  18. // 輸出文件內容 
  19. echo fread($file,filesize($file_dir . $file_name)); 
  20. fclose($file); 
  21. exit(); 
  22. ?> 

直接下載文件,代碼如下:

  1. <?php    
  2. $file = get_file_address();// 文件的真實地址(支持url,不過不建議用url)    
  3.    
  4. if (file_exists($file)) {    
  5.     header('Content-Description: File Transfer');    
  6.     header('Content-Type: application/octet-stream');    
  7.     header('Content-Disposition: attachment; filename='.basename($file));    
  8.     header('Content-Transfer-Encoding: binary');    
  9.     header('Expires: 0');    
  10.     header('Cache-Control: must-revalidate, post-check=0, pre-check=0');    
  11.     header('Pragma: public');    
  12.     header('Content-Length: ' . filesize($file));    
  13.     ob_clean();    
  14.     flush();    
  15.     readfile($file);    
  16.     exit;    
  17. }    
  18. ?> 

小提示,header函數不只是可以實現文件下載,他還有很多的功能,如發送404,301等等狀態信息都是可以的.

注意:在使用header之前我們必須在header之前沒有任何輸出,否則就會報錯.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 余姚市| 信丰县| 宁乡县| 嘉定区| 潢川县| 泰安市| 沈阳市| 宝坻区| 华坪县| 安义县| 浮梁县| 乌兰察布市| 石阡县| 平山县| 庄河市| 天水市| 沙雅县| 福泉市| 梁山县| 西和县| 马尔康县| 武鸣县| 彰武县| 赫章县| 股票| 仙游县| 江城| 米泉市| 富顺县| 阜新| 高邑县| 伊宁市| 康保县| 鲜城| 盈江县| 汪清县| 巨野县| 沅江市| 澄城县| 阳曲县| 平度市|