我有一个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的一部分发送.
归档时间: |
|
查看次数: |
21001 次 |
最近记录: |