如何显示存储在本地驱动器中的图像?
我有,我有,以显示存储在我的本地磁盘C中的图像的ASP页: 即 C:\ Program Files文件\肾上腺素\肾上腺素\ UPLOADEDFILES \ TemplateFile \ abc.jpg的如何显示存储在本地驱动器中的图像?
如何我可以这样做吗......我无法这样做。 图像不会显示,而是显示一个空的图像保持器,其中指定的图像的名称和URL不可用。
请帮助....
你将有权限问题如果图像是网站文件夹之外。传统上,网站在NETWORK SERVICE用户帐户下运行,这将限制对文件夹外文件的访问。您需要从具有相似访问权限的文件夹中提取文件,并且特别不适合这样做,特别是来自Program Files。
您应该可能通过网页或网络服务代理文件,这不会暴露图像在网站外部提供的事实。您需要确保目标文件夹C:\ Program Files \ Adrenalin \ Adrenalin \ UploadedFiles \ TemplateFile具有网络服务读取权限。
例如。通过访问URL
http://<localhost>/<website>/ImageServer.aspx
你应该得到的图像
class ImageServer
{
void Page_Load(object sender, EVentArgs e)
{
Response.ContentType="image/jpeg"; // for JPEG file
string [email protected]"C:\Program Files\Adrenalin\Adrenalin\UploadedFiles\TemplateFile\abc.jpg";
Response.WriteFile(physicalFileName);
}
}
在浏览器
和测试:创建一个空白的ASP.NET页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImageServer.aspx.cs" Inherits="ImageServer" %>
与后面的代码。
然后,标签内,使用页面的URL作为您的图像占位符:
<img src="ImageServer.aspx" alt="Image served" />
UPDATE:
看你的最新意见,我建议你发送一个查询参数与某种的员工代码,并使用它来查询数据库并在Page_Load()方法中获取适当的文件名。不要发送文件名作为QueryString的一部分。
你想要做的事情可以工作,但它在Web开发中非常灰心。把权限问题放在一边(这是非常严重的),你永远不能认为你的图像将在驱动器C:上提供的绝对路径中可用。
你应该做的是在你的网站目录中创建一个文件夹,并用它来存储图像,并使用相对链接而不是绝对链接。
即使您设法使绝对链接现在可以正常工作,在将来以不同的配置运行应用程序时,您也可以为将来的服务器头痛准备好。
复制项目根文件夹中的图像,并提供图像源作为图像名称而不是完整路径。 例如,img src =“battlefield.jpg”
为我工作:imgage.ImageUrl =“battlefield.jpg”; – 2015-03-11 15:59:13
向我们展示一些代码。如果您没有发布您的代码以及您遇到什么错误和问题,很难猜测您遇到的问题。 – Oded 2010-06-28 07:41:27
实际上我有一个数据库,其中上面提到的路径是为不同的员工存储的......当我点击employeee的名称时,它应该检索与该员工相对应的图像的路径并显示其image.Now我能够从数据库中检索路径,但它不显示存储在C:驱动器中的映像。 可能发生了什么问题? – jasmeet 2010-06-28 07:50:13