以前在ASP下,通過BASP21實現類似功能?,F在將PHP版本整理在這里。
通過以下代碼中所使用的技術可以實現如下幾個可能的需求
1、在有模板的基礎上,針對客戶的定制下載。
2、一些瀏覽器本身能夠表示的文件類型(如txt文件),可以通過將頭信息Content-Type改為 header("Content-Type: application/force-download");進行強制下載。
3、對于一些動態生成文件,比如TXT/CSV等文件,將臨時文件及時刪除
<?php/** * 本程序實現了將測試文件[test.pdf]創建副本,并將副本讀入 * 內存,以流的方式發送給客戶端瀏覽器,最終刪除副本的操作。 * * 本文可以實現的需求: * 1、在有模板的基礎上,針對客戶的定制下載。 * 2、一些瀏覽器本身能夠表示的文件類型(如txt文件),可以通過將頭信息Content-Type * 改為 header("Content-Type: application/force-download");進行強制下載。 * 3、對于一些動態生成文件,比如TXT/CSV等文件,可以將臨時文件及時刪除 * @author Densin.Tian@CisternData 2015/05/05 */// 文件名擴展名$fileExName = ".pdf";// 原始文件文件名$oldFileMainName = "testfile";// 獲得時間戳 YYYYMMDDHHMISS$timestamp = date ( "YmdHis", time () );// 新文件名$newFileName = $oldFileMainName . $timestamp;// 復制文件if (! copy ( $oldFileMainName . $fileExName, $newFileName . $fileExName )) { die ( "failed to copy" );}// 設置下載頭信息header ( "Content-Type: application/pdf" );header ( "Content-Disposition: attachment; filename=20150505.pdf" );// 文件流輸出到瀏覽器readfile ( $newFileName . $fileExName );// 刪除文件@unlink ( $newFileFullName );?>
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答