簡體   English   中英

禁用下載文件ASP.NET時的另存為

[英]Disable Save and save as while downloading a file ASP.NET


我正在創建一個帶有下載選項的網頁

當用戶單擊下載選項時,他會獲得三個選項

  • 打開
  • 另存為

我只希望用戶看到

  • 打開

我正在使用ASP.NET 4
謝謝

PS我嘗試谷歌,但不好

您不能這樣做,這將帶來安全風險。 我認為下一件最好的事情是讓用戶向uri方案注冊應用程序,這是需要通過注冊表在客戶端PC上進行配置的事情。 (對於Windows)

當然,這意味着您的應用程序也需要支持此功能。 您可以在這里查看其工作原理:

http://msdn.microsoft.com/zh-CN/library/aa767914(v=vs.85).aspx

最好的辦法是在應用程序通過安裝程序安裝時進行注冊,否則,您可以提供可執行文件來修改注冊表,或者在每個客戶端上手動進行操作,或者讓用戶從站點下載可執行文件,這是可行的。

如果您正在開發客戶端應用程序,則可以采用另一種方式來讓它輪詢Web服務器,但這顯然是一個更完善的解決方案。

根據您提供的文件類型,您可以將以下標頭添加到響應消息中:

content-disposition: inline

碼:

Response.AddHeader("content-disposition", "inline")

這將告訴瀏覽器立即打開文件,而不顯示對話框。 但是,只有在瀏覽器支持文件類型的情況下,它才起作用。

保存,另存為,打開是瀏覽器的選項。 簽入不同的瀏覽器,您將看到不同的選項。 糟糕,我可以使用“命中”,“命中我”,“再次命中我”和“看看”選項來創建瀏覽器。 您無法通過asp.net代碼控制它們。

通過代碼,您可以做的最好的事情就是指示瀏覽器使用以下命令內聯或作為附件顯示下載的內容:

Response.AddHeader(“ content-disposition”,“ attachment; filename = somefile.pdf”)

要么

Response.AddHeader(“ content-disposition”,“ inline”)

第一個選項將觸發瀏覽器的下載選項(在您的情況下,將顯示“保存”,“另存為”和“打開”按鈕)。 就我而言,Chrome會自動保存文件,而不會問我任何事情。

第二個選項將直接打開文件,但是只有在瀏覽器正確識別下載內容的內容類型並且可以顯示該內容的情況下,才打開該文件。

例如,對於PDF文件,您需要設置:

Response.ContentType =“應用程序/ pdf”;

如果您使用的是舊版瀏覽器,或者需要使用已經安裝了PDF插件(IE7 +,Chrome等)的新版瀏覽器,則需要安裝Acrobat Reader。

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM