需求:下載word文件,並且在下載後刪除,不佔用伺服器空間
//查詢要下載的資料
$html = Model::first()->content;
//建立臨時檔名字
$fileName = Model::first()->title.".doc";
//建立檔案到指定目錄
file_put_contents("./doc/".$fileName,$html);
//開啟檔案,如果檔案不存在會進行建立
$fp=fopen("./doc/".$fileName,"r");
//返回檔案大小
$file_size=filesize("./doc/".$fileName);
//下載檔案需要用到的頭
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".$fileName);
$buffer=1024; //設定一次讀取的位元組數,每讀取一次,就輸出資料(即返回給瀏覽器)
$file_count=0; //讀取的總位元組數
//向瀏覽器返回資料
while(!feof($fp) && $file_count<$file_size){
//讀取開啟的檔案
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
//關閉開啟的檔案
fclose($fp);
//下載完成後刪除檔案
if($file_count >= $file_size)
{
unlink("./doc/".$fileName);
}
僅供參考
本作品採用《CC 協議》,轉載必須註明作者和本文連結