2010-12-15 47 views
0

我有一個腳本可以生成一個臨時PDF文件,將它二進制流式傳輸到客戶端,然後將其刪除。ASP Response.AddHeader Content-Disposition對Acrobat不起作用

如果在瀏覽器的「文件」菜單中單擊「將頁面另存爲」,它將保存通過Content-Disposition指定的正確文件名。

但是,如果您單擊Acrobat閱讀器或Acrobat Pro中的保存按鈕,它將保存腳本文件的名稱,將「.asp」替換爲「.pdf」。這就像Acrobat完全忽略了「Content-Disposition」

重要的是我不使用靜態URL,而是使用動態腳本生成PDF,以便在關閉流時立即刪除它。否則,我無法知道客戶端何時完成下載。

有沒有解決方案?我看過幾個主題,但都沒有答案。

回答

1

您可以使用URL重寫器將「靜態」路徑指向您的動態腳本。

請參閱this blog post關於經典asp重定向。

所以,你可以像一個鏈接:

http://www.example.com/12_234_file.pdf 

重定向到:

http://www.example.com/dynamic.asp?id=12&id2=234 

客戶將看到它的網址重新寫入之前,應該使用它。

+0

問題是,我需要GET數據來自客戶端的窗體。沒有其他辦法可以做到這一點,是吧? – Dexter 2010-12-15 17:17:13

+0

@Dexter - 您可以使用JavaScript來構建GET或重寫服務器端重定向。 – Oded 2010-12-15 17:19:09

+0

這是不幸的......這需要一些獨創性。希望我知道這是在我寫劇本之前。 – Dexter 2010-12-15 19:25:54