2013-06-18 118 views
1

我有一個頁面作爲IIS 7(ASP.NET)網站的一部分,該網站提供來自數據庫的圖像。它使用查詢字符串來選擇圖像並適當設置內容類型標題(image/jpeg),例如,image.aspx?ID = 1234將作爲jpeg圖像顯示在瀏覽器中。在IIS中提供虛擬文件

我想要做的是提供一個URI形式的圖像/ 1234.jpg這將產生相同的結果。換句話說,名爲1234.jpg的服務器上沒有實際的文件,它只是數據庫記錄的內容,但從瀏覽器的角度來看,它好像有這樣一個文件。

我相信這是可能的,但我不知道它是如何完成的,或在哪裏尋找答案。我認爲這可能是通過ISAPI過濾器完成的,但是我還沒有找到通向文檔的可訪問路徑,以便知道這是否是解決方案的正確基礎。

回答

0

可能在這裏最好的辦法是實現改變image/1234.jpgimage.aspx?ID=1234

你可以找到更多關於URL重寫爲IIS here一個URL重寫規則。

如果由於某種原因URL重寫不是您的選擇,那麼另一種可能的方法可能是實現自定義404頁面。當你對image/1234.jpg的請求沒有產生真正的文件時,它會在那裏結束。

您應該能夠在該點檢測到URI並提供圖像。

+0

URL重寫提供了我以前的結果。 – Zenilogix

+0

經過修改IIS的URL重寫之後,我得知我可以在global.asax中使用Application_BeginRequest來進行重寫。不像重寫插件那樣「友好」,但具有在IIS中與開發服務器完全相同的優勢。 – Zenilogix