所以我有一些麻煩,從項目文件夾外顯示圖片...顯示圖片
我似乎只能以「〜」目錄中訪問圖像和子目錄...
說,如果我想從「E:/ XYZ/11-01-01新年/」或類似的東西訪問圖像,我該怎麼做?
注:我設置的所有文件夾和子文件夾爲可讀權限爲「所有人」,所以IIS/Visual Studio中應該可以,但沒有顯示
所以我有一些麻煩,從項目文件夾外顯示圖片...顯示圖片
我似乎只能以「〜」目錄中訪問圖像和子目錄...
說,如果我想從「E:/ XYZ/11-01-01新年/」或類似的東西訪問圖像,我該怎麼做?
注:我設置的所有文件夾和子文件夾爲可讀權限爲「所有人」,所以IIS/Visual Studio中應該可以,但沒有顯示
您應該使用在圖像控制圖像HttpHandler來顯示圖像。
谷歌搜索「httphandler圖像」找到了很多關於如何做到這一點的例子。
而不是試圖直接鏈接到你的圖像,你會鏈接到與查詢字符串決定哪個圖像顯示的處理程序。例如
http://mysite.com/MyHandler.ashx?image=myimage.jpg
這裏是一個非常基本的樣品(減去錯誤處理等)
using System.IO;
using System.Web;
public class MyImageHandler : IHttpHandler
{
public void ProcessRequest(System.Web.HttpContext ctx)
{
string _Path;
_Path = "E:\\XYZ\\11-01-01 New Year\\" + context.Request.QueryString["image"];
ctx.Response.StatusCode = 200;
ctx.Response.ContentType = "image/jpeg";
ctx.Response.WriteFile(_Path);
}
public bool IsReusable { get {return true; } }
}
客戶端瀏覽器將永遠不知道這些圖片是,除非你映射一個虛擬目錄的圖像。在您的本地測試環境中,您可以通過將該映像稱爲「file:///E:/XYZ/11-01-01 New Year/myimage.jpg
」來解決此問題,但這是非常糟糕的做法,並且在生產環境中將無法工作。您應該始終在應用程序的工作目錄中使用相對路徑,或者在其他位置使用靜態定義的虛擬目錄。
你試過了哪些代碼?你得到了哪些錯誤/異常? – 2011-01-13 20:06:20
最簡單的方法是在IIS中設置一個虛擬目錄,但通常這意味着URL可以在沒有任何驗證檢查的情況下公開訪問。如果您想要根據登錄狀態/角色控制對文件的訪問,或者想要執行自定義日誌記錄,那麼您需要使用IHTTPHandler路徑。 – 2011-01-13 22:48:19
@pauli:沒有錯誤,因爲圖像控件不會拋出錯誤...他們只是保持空白。 – 2011-01-15 06:56:35