如何显示存储在本地驱动器中的图像?

jas*_*eet 2 asp.net

我有一个asp页面,我必须显示存储在我的本地磁盘C中的图像:ie.C:\ Program Files\Adrenalin\Adrenalin\UploadedFiles\TemplateFile\abc.jpg

我怎么能这样做......我无法做到这一点.不显示图像,而是显示一个空的图像持有者,其中指定了图像的名称,并且URL不可用.

请帮忙....

Pro*_*m.X 12

如果图像位于网站文件夹之外,您将遇到权限问题.传统上,网站在NETWORK SERVICE用户帐户下运行,这将限制对文件夹外部文件的访问.您需要从具有类似访问权限的文件夹中提取文件,这样做非常不明智的,尤其是来自Program Files.

您应该通过网页或Web服务代理该文件,这不会暴露图像在网站外部提供的事实.您需要确保目标文件夹C:\ Program Files\Adrenalin\Adrenalin\UploadedFiles\TemplateFile具有NETWORK SERVICE读访问权限.

例如.创建一个空白的ASP.NET页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImageServer.aspx.cs" Inherits="ImageServer" %>
Run Code Online (Sandbox Code Playgroud)

后面的代码:

class ImageServer
{
  void Page_Load(object sender, EVentArgs e)
  {
    Response.ContentType="image/jpeg"; // for JPEG file
    string physicalFileName=@"C:\Program Files\Adrenalin\Adrenalin\UploadedFiles\TemplateFile\abc.jpg";
    Response.WriteFile(physicalFileName);
  }
}
Run Code Online (Sandbox Code Playgroud)

并通过转到URL在您的浏览器中进行测试

http://<localhost>/<website>/ImageServer.aspx
Run Code Online (Sandbox Code Playgroud)

你应该得到图像.

然后,在标记内,使用页面的URL作为图像占位符:

<img src="ImageServer.aspx" alt="Image served" />
Run Code Online (Sandbox Code Playgroud)

更新:

查看您的最新评论,我建议您使用某种员工代码发送QueryString参数,并使用该参数查询数据库并在Page_Load()方法中获取相应的文件名.不要将文件名作为QueryString的一部分发送.