簡體   English   中英

從本地驅動器加載圖像控件

[英]Loading an image control from a local drive

我有一個文件夾C:\\ Images,其中包含一些圖像。 該文件夾不在我的項目中,我想知道是否有辦法將該文件夾中的圖像加載到ASP.NET Image控件上。

<asp:Image ID="img" runat="server" />

一種解決方案是使Images文件夾成為IIS上的虛擬目錄,但我想知道是否可以在不為Images文件夾創建虛擬目錄的情況下完成此操作。

假設授予對Images文件夾的正確訪問權限,您可以執行以下操作:

您的主頁:

protected void Page_Load(object sender, EventArgs e)
{
    mainImage.ImageUrl = "ImageHandler.ashx?image=MyImage.jpg";
}

ImageHandler:

public void ProcessRequest(HttpContext context)
{
    byte[] imageBytes = File.ReadAllBytes(@"C:\Images" + context.Request["image"]);
    context.Response.ContentType = "image/jpeg";
    context.Response.BinaryWrite(imageBytes);
}

最終,圖像必須位於用戶瀏覽器可以看到的位置。

這意味着您可以選擇:

  • 將圖像移至Web服務器上的目錄
  • 將映像目錄設置為虛擬目錄
  • 在運行時將映像復制到Web服務器上的目錄

最佳實踐的答案是,如果圖像是站點的一部分,則將其放入您的項目中;如果該目錄是用戶上傳的圖像的存儲,則將其映射到虛擬目錄。

暫無
暫無

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

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