1. 程式人生 > >PHP 檔案下載 header設定

PHP 檔案下載 header設定

                                                                   PHP 檔案下載 header設定

1、已知.txt檔案路徑,點選時彈出下載框下載該檔案。

public function downloadAction(){
    $file_path = $_GET['url'];	//檔案路徑
    $file_name = trim($_GET['title']).'.txt';	//檔名;或直接從路徑上獲取 basename($file_path)
		
    header("Content-type: text/plain");			//Mime-Type型別 
    header("Content-Disposition:attachment;filename = ".$file_name);	//彈出儲存框的形式下載檔案(附件)
    readfile($file_path);	//返回從檔案中讀入的位元組數
    die();					//方法結束
}

2、已經.txt檔案的路徑,點選時在瀏覽器開啟(檢視)該檔案。

header("Content-Disposition:inline;filename = ".$file_name);	//在頁面內開啟檔案

  總結:Content-Disposition屬性有兩種型別:inline 和 attachment

  •         inline :將檔案內容直接顯示在頁面;
  •         attachment:彈出對話方塊讓使用者下載。

3、下載較大的視訊檔案。

引用

/**
 * @todo 下載檔案
 * @param string $file 檔案路徑
*/
public function download($file){						//引用 https://blog.csdn.net/zhanqixuan22/article/details/47753927
	set_time_limit(0);									//程式最大的執行時間,單位為秒。如果設定為0(零),沒有時間方面的限制。 
	ini_set('memory_limit', '512M');					// 最大單執行緒的獨立記憶體使用量。也就是一個web請求,給予執行緒最大的記憶體使用量的定義。
	header('Content-Type: application/octet-stream');	//octet-stream:是以流的形式下載檔案,這樣可以實現任意格式的檔案下載。
	header('Content-Disposition: attachment; filename='.basename($file));	//以瀏覽器彈出儲存框形式下載檔案。
	header('Content-Transfer-Encoding: binary');		//內容在傳輸過程中的編碼格式
	readfile($file);									//返回從檔案中讀入的位元組數
}