有沒有一種快速內聯的方式,使第一次初始點擊後,我的一些鏈接提示'保存文件爲'(與右鍵點擊相同的屏幕)?簡單的方法來使鏈接提示「另存爲」
0
A
回答
2
您只需發送適當的標題即可。 Content-Disposition
是關鍵(參見http://en.wikipedia.org/wiki/MIME)。
請參閱下面的PHP示例。
/**
* @author Gajus Kuizinas <[email protected]>
* @copyright Anuary Ltd, http://anuary.com
* @version 1.0.1 (2011 11 18)
*/
function ay_file_force_download($file, $file_name = NULL)
{
if(headers_sent())
{
throw new Ay_Exception('Headers have been already sent. Cannot force file download.');
}
$file_name = $file_name === NULL ? basename($file) : $file_name;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $file_name);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
+0
哦 - 但是,這不適用於我所有的鏈接嗎?我只是想用某些鏈接來做到這一點? - 可能嗎? –
0
你真的需要在PHP端什麼是設置Content-Disposition
頭,依戀,如header('Content-Disposition: attachment; filename=name-of-file');
。如果您必須或希望在客戶端執行此操作,瀏覽器將自動嘗試下載大量文檔類型,因此您只需提供一個直接鏈接即可。顯然這並不是爲了你而發生的,但是,當然這不是可靠的。
相關問題
- 1. 更簡單的方法來提示保存對話框
- 2. 簡單的方法來風格鏈接的顏色從單獨的:鏈接
- 3. 簡單的JavaScript方法鏈接
- 4. 更簡單的方式來顯示從下拉菜單使用jQuery的鏈接
- 5. 最簡單的方法來修改鏈接中的URL?
- 6. 簡單的方法來鏈接jQuery中的元素
- 7. 更簡單的方法來跟蹤鏈接與Scrapy
- 8. 最簡單的方法來禁用鏈接到外部網站?
- 9. 簡單的方法來殺死所有鏈接
- 10. 簡單的方法來做主動鏈接切換
- 11. 簡單的方法來看看誰喜歡某個鏈接?
- 12. 最簡單的方法來自動鏈接文本並添加鏈接
- 13. 簡單的方法來顯示Ajax?
- 14. 嘲笑鏈接的方法簡單的方法調用EasyMock的
- 15. 強制鏈接來打開「鏈接另存爲」對話框
- 16. 簡單的方法來使用UIScrollView
- 17. 簡單的modrewrite,鏈接如何顯示?
- 18. 簡單的間接方法鏈接到圖像
- 19. 最簡單的方法來禁用按鈕提交表單?
- 20. CakePHP - 快速簡單的方式來生成圖像鏈接?
- 21. 簡單的方法來找到方程
- 22. 抑制「另存爲」提示
- 23. 在PHP鏈中使用Variable作爲方法來允許條件方法鏈接
- 24. Sitecore 8個簡單的方法來獲得項目的內部鏈接?
- 25. 簡單顯示方法
- 26. 什麼是最簡單的方法來解決C++鏈接錯誤
- 27. Winform簡單鏈接
- 28. 芹菜鏈監測:簡單的方法
- 29. 是否有簡單的方法來搜索提取的記錄?
- 30. UITextView中的簡單鏈接的最佳方法
可能重複的[用php打開下載對話框](http://stackoverflow.com/questions/985083/open-download-dialog-with-php) – mario
不是重複的,因爲這個問題並沒有直接詢問如何使用服務器端來完成它。因此,答案需要解釋它不能在客戶端完成,因此需要服務器端方法。 – Gajus