2009-01-08 163 views
0

在這裏請原諒笨蛋新手問題;網絡編程是不是我的特長...(臉紅)如何將二進制blob發送到客戶端瀏覽器?

我有一個aspx頁面上運行的Web服務器。我有一個blob(字節數組)包含任何類型的二進制文件,再加上一個文件名。

我想推送這個文件,通過瀏覽器下載到客戶端,並打開使用該文件類型的默認應用程序。我真的不想將blob作爲文件保存在服務器上;這會留下一個我不想考慮的糟糕的家務管理混亂。

我確實嘗試了谷歌搜索這個問題,但我想我使用了錯誤的關鍵字。

這真的應該是明顯的如何做到這一點,但我沒有快樂。

有什麼竅門?

謝謝!

回答

10
Response.BinaryWrite(byteArray); 

你也應該設置內容類型

Response.ContentType = "application/pdf"; 

但是,這將根據你的文件類型。

和文件名(以及一切融合在一起)是這樣

Response.AddHeader("content-disposition", 
    String.Format("attachment;filename={0}", fileName));  
Response.ContentType = "application/pdf"; 
Response.BinaryWrite(byteArray); 
+0

我會補充說,某些瀏覽器(*咳嗽* IE *咳嗽)經常忽略文件名。 – 2009-01-08 22:22:35

3

首先做到,你必須知道的MIME類型。一旦你知道了,你可以設置Response.ContentType屬性。之後,只需使用Response.BinaryWrite()。如果您不首先設置ContentType屬性,則客戶端幾乎不會正確打開文件。

相關問題