PHP下載tar文件,卻下載了調用下載函數的php文件

// download.php
<?php
require_once 'file.func.php';
$filename = $_GET['filename'];
down_file($filename);
// file.func.php中的下載函數
function down_file(string $filename, $allowDownExt=['png','jpg','jpeg','gif','txt','html','tar','zip']) {
  // 檢測下載文件是否存在并可讀
  if (!is_file($filename)) {
    return false;
  }
  // 檢測文件類型是否允許下載
  $ext = strtolower(pathinfo($filename,PATHINFO_EXTENSION));
  if (!in_array($ext,$allowDownExt)) {
    return false;
  }
  // 通過heander()發送頭信息
  // 告訴瀏覽器輸出的是字節流
  header('content-type:application/octet-stream');
  // 告訴瀏覽器返回的文件大小是按照字節計算的
  header('Accept-Ranges:bytes');
  // 告訴瀏覽器返回的文件大小
  header('Accept-Length:'.filesize($filename));
  // 告訴瀏覽器如何處理文件(這里是作為附件處理), 告訴瀏覽器最終下載完的文件名稱
  header('Content-Disposition:attachment:filename=Daniel_'.basename($filename));
  // 讀取文件中的內容
  readfile($filename);
  exit;
}

錯誤出現在

Disposition:attachment:filename=Daniel_'.basename($filename));

attachment 后面應該是分號而不是冒號, 因為這個錯誤下載的文件名是'download.php', 內容是tar文件里面內容的字節流形式

真是新手錯誤TAT

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 個人學習批處理的初衷來源于實際工作;在某個迭代版本有個BS(安卓手游模擬器)大需求,從而在測試過程中就重復涉及到...
    Luckykailiu閱讀 4,782評論 0 11
  • PHP 學習目錄 ├─PHP視頻教程 1 LAMP網站構建 │ ├─PHP教程 1.1.1 新版視頻形式介紹│ ...
    曹淵說創業閱讀 16,188評論 29 417
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_閱讀 1,861評論 0 3
  • php.ini設置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 6,834評論 3 64
  • 感冒了,難受。在吹頭發的時候看著鏡中的自己才而立之年竟發現白頭發多了不少。雖然從少年起,自己已有白發。但每次看的時...
    爭做一棵懸崖邊的樹閱讀 279評論 1 0