2010-01-05 81 views
1

我正在使用asp.net中的兩個不同的網站。在第一個項目中,我將一些圖像上傳到項目根目錄下的特定文件夾,並將文件名保存在數據庫中,現在我試圖在第二個項目的某個頁面上顯示此圖像我知道數據庫和圖像的文件名文件夾作爲絕對拍拍,但我還沒有能夠顯示圖像,即使在螢火蟲看圖像src是正確的src="D:/MyFolder/image.jpg"圖像不顯示,可能是因爲它沒有指向正確的目錄。 我也嘗試使用Server.MapPath,然後我的D位置,但仍然沒有成功。ImageUrl試圖在項目根目錄外顯示圖像

我確定有人曾經遇到同樣的情況,並且真的希望得到一些提示來解決這個問題。 預先感謝您

+0

代碼示例將是很好 – Jason 2010-01-05 22:32:30

回答

2

我發現我的解決方案,很奇怪,但我沒有抓住它。項目下載的圖片始終可以通過項目http://www.yourwebsite.com/images/photo.png的URL訪問,現在可以在第二個項目中使用,這個項目可以使用這個URL來引用圖像並連接存儲在數據庫上的文件名。我認爲這是最好的解決方案,並且不會改變代碼訪問安全性,我認爲它可能帶來其他問題。無論如何謝謝你們。

+0

+1進行後續跟解釋。 (另外,您可以將自己的答案標記爲解決方案) – 2010-01-11 17:10:30

1

我不認爲您可以在默認情況下在應用程序路徑之外提供文件。它被稱爲代碼訪問安全性。你可以在這裏讀了它:
http://msdn.microsoft.com/en-us/library/930b76w0.aspx

您可以通過在你的web.config改變你的信任級別高解決這個問題:
http://msdn.microsoft.com/en-us/library/tkscy493.aspx

我不建議這樣做,任何網站,可從外部訪問。實際上,根據您的應用程序託管方式/位置,此選項可能會受到限制。

1

您只能「鏈接」相對於同一項目存在或通過絕對URL託管在另一個站點上的文件。

如果您想要在應用程序/網站之外(在磁盤或數據庫中)提供文件服務,您將需要構建一種機制來獲取文件和二進制文件將其寫入瀏覽器,設置MIME類型等。最好使用HttpHandler完成。

1

如果你想顯示,是不是在你的項目中(我的意思是它存在於其他一些項目或一些其它驅動器)的圖像只需要創建一個虛擬目錄在IIS

  1. 進入「運行」 ,類型inetmgr
  2. 您的項目右鍵單擊並添加虛擬目錄
  3. 給別名和路徑,這樣它就像文件夾在你的項目