日期:2014-05-17  浏览次数:20498 次

怎么把从数据库读的字段作为参数来打开本地的图片
如题,小弟在做WEB开发,希望从数据库读取一个字段,相应可以打开本地一张图片显示在网页上。怎么把从数据库读的字段作为参数来打开本地的图片,我用的是SQL SERVER 2012

------解决方案--------------------
引用:
恩,保存的不是路径,比如图片存在E:/001.jpg,那从数据库中读取的字段就是001,当然,数据库字段和图片肯定是一对一的关系。还有,怎么把取出来的数据绑定的Image控件?小弟初学,求大神指导


这通常会这样写
<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 默认不会发布这个文件夹)。