我有一个文件夹C:\ Images,它有一些图片。这个文件夹不在我的项目中,我想知道是否有办法将该文件夹中的图像加载到ASP.NET Image控件。
<asp:Image ID="img" runat="server" />
一种解决方案可能是将Images文件夹设为IIS上的虚拟目录,但我想知道是否可以在不创建Images文件夹的虚拟目录的情况下完成此操作。
答案 0 :(得分:4)
假设对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);
}
答案 1 :(得分:1)
在一天结束时,图像需要位于用户浏览器可以看到的位置。
这意味着您的选择是:
最佳实践答案是,如果图像是网站的一部分,则将图像放入项目中;如果目录是用户上传图像的存储,则映射虚拟目录。