PHP 使用 header 方式實現文件下載功能


header() 函數向客戶端發送原始的 HTTP 報頭。

下載文件要用的的請求頭:

header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Accept-Length:" . $file_Size);
header("Content-Disposition:attachment;filename=" . $filename);
  • content-type: 文件類型
  • Accept-Ranges: 表示接收數據的類型或者范圍,圖片屬於二進制的東西所以需要使用字節的方式傳輸
  • Accept-Length: 表示接收的文件大小,php 文件下載需要告訴瀏覽器下載的文件有多大
  • Content-Disposition: 附件只需要把文件名給過去就可以,這個名稱就是下載時顯示的文件名稱

文件名是中文的話,需要注意轉碼

$filename = iconv("UTF-8", "GB2312", $filename);

具體實現代碼如下:

$file = $_GET['file'];
if(file_exists($file)){
	header("Content-type:application/octet-stream");
	$filename = iconv("UTF-8", "GB2312", basename($file));
	header("Content-Disposition:attachment;filename=" . $filename);
	header("Accept-ranges:bytes");
	header("Accept-length:".filesize($file));
	readfile($file);
} else {
	echo "<script>alert('文件不存在')</script>";
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM