我有一個.pdf格式的文件,用於我的網站。打開另存爲對話框
如果您點擊鏈接,它會打開Adobe Reader並打開文件。
我想做的事,當你左鍵點擊,它會打開你想要
來保存文件,詢問你的對話框是。
我知道你可以通過右擊做到這一點,選擇另存爲, 但有什麼辦法由剛剛
一個簡單的左鍵點擊立即下載呢?
我有一個.pdf格式的文件,用於我的網站。打開另存爲對話框
如果您點擊鏈接,它會打開Adobe Reader並打開文件。
我想做的事,當你左鍵點擊,它會打開你想要
來保存文件,詢問你的對話框是。
我知道你可以通過右擊做到這一點,選擇另存爲, 但有什麼辦法由剛剛
一個簡單的左鍵點擊立即下載呢?
我確定有一些破解可以實現這一點,但這是在計算機上安裝Adobe Reader時與瀏覽器一起安裝的功能。保持所有用戶的一致性是最好的方法。不要打擾嘗試使左鍵單擊打開保存對話框。用戶習慣了這種行爲並知道如何將PDF保存到本地硬盤
一致性是關鍵。
的PDF添加到壓縮文件夾,然後將鏈接添加到Zip文件夾
從你的鏈接的href部分刪除PDF的位置,和代碼一個onClick方法來代替。
<a href="#" onClick="$:openSaveDialog">
<script>
function openSaveDialog() {
//Write a JavaScript function to prompt the user with a Save Dialog Box.
}
</script>
兩部分,您必須將pdf轉換爲字節流,並向html響應添加內容處置標頭。
第一個獲得文件和流的字節數組
public byte[] GetDocument(string filePath)
{
return File.ReadAllBytes(filePath);
}
然後把它 - 在Page_Load事件的第一件事 - 你需要通過會議或查詢傳遞文件路徑字符串添加到新頁面,因爲您無法更改已在瀏覽器中查看的現有頁面上的內容類型。
Byte[] fileData = GetDocument(filePath);
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/pdf";
// prompt to download
Response.AppendHeader("content-disposition", "attachment; filename=declarations.pdf");
Response.AppendHeader("content-length", fileData.Length.ToString());
Response.BinaryWrite(fileData);
Response.Flush();
Response.Close();