目的是在運行sql轉儲腳本(來自PHP)後下載傾銷的backup.sql
文件。通常,轉儲的.sql
文件在服務器上輸出(寫入)。然後,當我製作像<a href="backup.sql">Download File</a>
那樣的文件的href鏈接時,該文件在點擊時在瀏覽器內部打開,而不是下載。如何創建可下載的鏈接到文本文件?
- 我只想做一個簡單的HREF LINK(這樣的文本文件),其顯示了「另存爲...」簡單左側對話框中單擊。
它是如何做到的?
目的是在運行sql轉儲腳本(來自PHP)後下載傾銷的backup.sql
文件。通常,轉儲的.sql
文件在服務器上輸出(寫入)。然後,當我製作像<a href="backup.sql">Download File</a>
那樣的文件的href鏈接時,該文件在點擊時在瀏覽器內部打開,而不是下載。如何創建可下載的鏈接到文本文件?
它是如何做到的?
將以下行添加到您的.htaccess
文件中。
<Files "backup.sql">
ForceType applicaton/octet-stream
Header set Content-Disposition attachment
</Files>
另一種選擇是用一個PHP文件如爲它服務download.php
有這樣的的download.php
$path = "backup.sql"
header("Content-Type: application/octet-stream"); //
header("Content-Length: " . filesize($path));
header('Content-Disposition: attachment; filename='.$path);
readfile($path);
然後
<a href="download.php">Download File</a>
如此偉大的劇本,vikki。感謝它;)它對我來說很好,但如果可能的話,我可以用'Save as..'對話框來保存它嗎? – 2012-02-09 10:20:11
或者你可以只使用新的HTML5屬性download
在您的html的錨定標記中。
的代碼看起來像
<a download href="path/to/the/download/file"> Clicking on this link will force download the file</a>
它適用於Firefox和Chrome最新版本。我應該提到我沒有在IE中檢查它嗎? :P
在我剛剛驗證的IE6上工作...:P – 2013-08-21 01:21:25
在與上述條件相同的情況下:用戶的瀏覽器配置仍可能提示用戶在查看和保存之間進行選擇。當html KNOWS的作者是文件是二進制的,如果查看會導致驚愕,是不是有一種方法讓HTML作者只允許選擇「保存」? OP的問題似乎還沒有得到答案。是否有一些文件後綴(例如.exe)的行爲不同? – bootchk 2013-08-30 11:37:33
非常簡單。 – 2016-02-04 06:27:00
這太酷了。謝謝你的訣竅;)它對我來說很好,但如果可能的話,我可以用'Save as..'對話框來保存它嗎? – 2012-02-09 10:18:58
您應該使用這些規則得到一個「另存爲...」對話框。 (如果你得到一個內部服務器錯誤,你可能沒有加載頭文件模塊)。 – 2012-02-09 11:16:43
沒有羅布。該文件現在只需單擊進入默認瀏覽器下載文件夾即可保存。但是,廣泛地我只是想讓瀏覽器用對話框來詢問保存(就像我們用右鍵單擊保存鏈接一樣 - >另存爲)。但是,只是要求知識。這並不是真的需要我知道。 – 2012-02-10 10:06:28