怎么把从数据库读的字段作为参数来打开本地的图片
如题,小弟在做WEB开发,希望从数据库读取一个字段,相应可以打开本地一张图片显示在网页上。怎么把从数据库读的字段作为参数来打开本地的图片,我用的是SQL SERVER 2012
[解决办法]
这通常会这样写
<asp:Image runat="server" ImageUrl='<%# GetUrl((string)Eval("img_num")) %>' />
protected string GetUrl(string imageId)
{
return ResolveUrl("~/DownloadImage.ashx?id="+imageId);
}
然后,你可以在你的网站里创建一个文件 DownloadImage.ashx,它或许是类似这样的代码
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
var name = context.Request.QueryString["id"];
var path = context.Server.MapPath("~/app_data/pics/" + name + ".jpg");
context.Response.TransmitFile(path);
}
public bool IsReusable
{
get
{
return false;
}
}
}
当然,如果你写 var path = "e:\" + name + ".jpg"); 我也不能说一定不行。但是建议不要在 asp.net 程序这样写。在正常的网站提供商环境中,严禁一个asp.net程序访问网站以外的文件夹。数据文件应该放在 app_data 文件夹下面(打包发布时,vs 默认不会发布这个文件夹)。