簡體   English   中英

從SQL Server檢索圖像以在ASP.NET應用程序中顯示

[英]Retrieve an image from SQL Server to show it in an ASP.NET app

我想從SQL Server檢索圖像以在ASP.NET應用程序中顯示它。 我認為我可以將從SQL Server檢索到的圖像記錄到服務器的文件夾中,並顯示其拋出的路徑。 還有其他更好的方法嗎?

音頻和視頻文件存在相同的問題(我可以使用Silverlight播放這些音頻和視頻文件嗎?)

我擔心的是,我不想將這些文件(圖像,音頻和視頻)存儲在服務器上進行顯示。

您可以編寫一個自定義HTTP處理程序,該處理程序將獲取要在查詢字符串參數上顯示的項目的ID。

然后,此處理程序將從SQL Server中檢索數據,並像下載文件一樣返回它。 這篇文章有步驟。

我不確定“文件”中的Silverlight流功能,您可能需要使用Silverlight流服務

大家好,我想下面的鏈接中提供了解決方案:

http://www.codeproject.com/KB/aspnet/asp_net_and_mysql.aspx

http://www.codeproject.com/KB/aspnet/image_asp.aspx

該解決方案適用於mysql數據庫,也可以適當修改以與mssql數據庫一起使用。

有沒有更好的辦法? 恕我直言,是的。 將圖像文件存儲為文件。 這就是文件系統的用途,並且您無需參與數據庫的摸索。

過去,我曾經使用MySQL來存儲圖像並通過PHP檢索它們,但是從維護的角度來看,該解決方案確實過時了。 歸結為這樣一個事實,您總是必須以某種方式存儲數據,而最有效的方法也是最簡單的方法。

如果必須將其存儲在數據庫中,我將使用一個通用的訪問器頁面(例如myImage.aspx)來查詢數據庫並將返回的Blob直接流式傳輸到瀏覽器。 然后,您的img標簽可能需要看起來像

<img src="/img/myImage.aspx?imgId=123456" <other tag data> />

如果使用SQL Server 2008,我相信您可以將這些對象存儲為FILESTREAM,然后可以檢索文件系統上文件的路徑。 您應該能夠安排該路徑通過IIS進行映射,因此將其轉換為URL應該很實用。

您的圖片來源可以是

<img src="blah.aspx?id=123" />

在blah.aspx中,從數據庫中檢索圖像數據,並使用Response.BinaryWrite將其設置為適當的內容類型后發送到瀏覽器。

暫無
暫無

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

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