2012-10-27 76 views
0

相當直接的問題,我將圖像作爲varbinary存儲在我的數據庫中,並希望提供這些圖像的鏈接,而不是在網站上顯示它們。當用戶點擊鏈接時,他/她應該能夠下載圖像。將varbinary顯示爲可下載的鏈接

+0

[你嘗試過什麼(http://whathaveyoutried.com)?你考慮過哪些方法? – Oded

回答

3

響應請求提供圖像。

<img src="?" /> <!-- what goes here? --> 

你需要創建一個HTTP handler接收這些圖像的請求。

處理程序是一個可執行文件,可用於特定的URL,可以響應您的請求;在這種情況下,通過提供圖像的二進制數據。一個ASPX頁面是一個有效的處理程序,雖然有更高效的圖像處理程序類型。

<img src="MyHandler.aspx?imageId=123" /> 

處理程序應該做幾件事情:

  • 驗證該ID是有效的,並且調用者的權限(如果需要)
  • 從數據庫
  • 集檢索圖像適當的響應標頭
  • 使用Response.BinaryWrite()將二進制數據發送到客戶端。

請注意,如果您使用的是ASP.Net MVC,則可以使用控制器作爲處理程序。

另一種方法是將字節進行64位編碼並將它們直接嵌入到圖像標籤中。

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA 
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot"> 

這是一個很有用的技術,用於小圖像或多個請求的開銷非常高。

參見:http://en.wikipedia.org/wiki/Data_URI_scheme

更多閱讀:

0

您應該創建一個採用圖像標識並返回圖像的頁面。