2012-01-02 41 views
0

我想一些圖像存儲App_Data文件夾中,我知道它的一個安全的文件夾 ,但我不知道我怎樣才能從HTML訪問該圖像文件(不顯示圖像)訪問映像

是有任何建議,或者我如何將我的圖像存儲在一個安全的地方,無法從外部用戶訪問

回答

1

下面應該讓你開始。

namespace Moo.Core.Handlers 
{ 
    public class Thumbnail : IHttpHandler 
    { 
     public bool IsReusable 
     { 
      get { return false; } 
     } 

     public void ProcessRequest(HttpContext context) 
     { 
      String FileName = Path.GetFileName(context.Request.PhysicalPath).Replace(".th", ""); 
      String AssetName = HttpContext.Current.Request.MapPath(Path.Combine(HttpContext.Current.Request.ApplicationPath, "UserData/Images/" + FileName)); 

      if (File.Exists(AssetName)) 
      { 
       context.Response.ContentType = ImageManipulation.TypeOf(AssetName).MimeType; 
       context.Response.BinaryWrite(File.ReadAllBytes(AssetName)); 
       context.Response.End(); 
      } 
     } 
    } 
} 
+0

要獲得更完整的答案,您還可以爲處理程序添加任何配置(如有必要),以及如何使用此處理程序以HTML引用圖像? – 2012-01-02 20:30:29

+0

當我回到電腦時,我會做。 – Moo 2012-01-03 15:46:22

1

App_Data文件夾旨在保存數據庫,XML文件和其他形式的數據存儲。沒有必要將圖像存儲在那裏。相反,在別處創建一個文件夾並使用您的Web服務器來禁用該文件夾上的目錄瀏覽。最後,如果用戶可以看到圖像,他們可以以某種方式訪問​​它,但禁用目錄瀏覽器意味着它們不能像在Windows資源管理器中那樣遍歷文件夾。

-1

如果您只是想控制對圖像的訪問,則可以將文件存儲在數據庫中,並將它們作爲二進制圖像提供給所需的用戶。例如:

<img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." /> 

您可以瞭解更多有關它here

+0

它的一個很好的解決方案,但它不是我期待的 – 2012-01-03 11:05:08

+0

我只是想幫助。 – 2012-01-05 10:09:52