读书人

绝对路径的图片显示,该如何解决

发布时间: 2014-01-22 14:50:12 作者: rapoo

绝对路径的图片显示
图片地址是 "D:\img\xx.jpg" 这种、数据库是这个保存的、 怎么能显示出来啊。直接<img src="D:\img\xx.jpg" />这样在IE里能显示、别浏览器的不行、图片是由别的程序上传到服务器的、也不能把他放到项目中、网上都说用相对路径、这样的怎么转成相对路径啊、要把放图片的这个文件夹发布到网上才行么、用js可以实现么、
[解决办法]
明显是不正确的,网站能让其它访问者识别的只能是相对于站点的文件路径

你可以通过.aspx强制输出文件流

/img.aspx?url=D:\img\xx.jpg

img.aspx做的工作就是将D:\img\xx.jpg以文件流输出
[解决办法]
其实你的问题也挺好解决的
你自己建一个HttpHandler类来处理
大致的代码是这样的


public class ImgHandler : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
string path = context.Request.QueryString["imgParth"]+"";
context.Response.ContentType = "image/jpeg";
if (path!="")
{
context.Response.WriteFile(path);
}
else
{
path = context.Server.MapPath("~/Images/error.jpg");
context.Response.WriteFile(path);
}
}

public bool IsReusable
{
get
{
return false;
}
}
}

注意:imgParth , ~/Images/error.jpg 改成你自己的参数

你在html中就要这么写
<img alt="绝对路径的图片显示,该如何解决" src="ImgHandler?imgParth=D:\img\xx.jpg" />

读书人网 >asp.net

热点推荐