簡體   English   中英

使用Javascript向用戶發送HTTP附件(打開瀏覽器的“另存為...”對話框)

[英]Using Javascript to send an HTTP attachment to the user (open browser's Save as… dialog)

我是Web開發的新手,所以如果這個問題不好,我深表歉意。 我想在用戶請求時(即發送HTTP附件以觸發瀏覽器的“另存為...”對話框)向用戶提供服務器硬盤驅動器上的文件。 用戶單擊頁面上的按鈕,服務器根據其帳戶設置(和其他參數)生成自定義數據文件,然后應彈出“另存為...”對話框。 我應該如何用Java腳本實現呢?

編輯:供您參考,該服務器具有Glassfish和Apache

簡,

另存為對話框僅在頁面加載時顯示。 您需要將用戶直接重定向到要保存的文件,或重定向到提供該文件的服務器端頁面。

知道文件地址后,執行以下操作

window.location = http://yourserver.com/generatedfiles/file_2342342.txt

或者,執行以下操作:

window.location = http://yourserver.com/getgeneratedfile.aspx?fileID=2342342

...這會將用戶重定向到提供所生成文件的頁面。 然后,您需要在該頁面的標題中指定content-disposition和filename,如Gandalf的回復所述。

編輯:啊,您正在使用Apache。 那時那里可能沒有ASPX文件。

設置Http Response標頭:

Content-Disposition: attachment; filename=myfile.txt

或類似的東西

<a href="javascript:void(0);" onclick="document.execCommand('SaveAs',true,'file.html');">Save this page</a> 

@aric的答案是正確的; 但是, window.location將導致觸發加載/卸載事件,這對於您的應用程序可能不是所希望的。 在這種情況下,您可能會將隱藏的iframe定向到url,以使保存對話框出現而不會丟失頁面的狀態。

另外,“ SaveAs”可能是document.execCommand的IE特定值,因為它在Firefox中不存在

暫無
暫無

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

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