【问题标题】:How to get particular image from the database?如何从数据库中获取特定图像?
【发布时间】:2014-01-20 04:06:43
【问题描述】:

我在 aspx 页面上有一个像这样的图像控件

    <asp:Image ID="Image1" runat="server" Height="64px" Width="64px" 
     ImageUrl='<%# "SideImageHandler.ashx?ID=" + Eval("ID")%>'/>

我的图像处理程序代码如下所示

    public void ProcessRequest(HttpContext context)
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["GalleryConnectionString"].ConnectionString;

        // Create SQL Command 
        Utility.ImageID = 2;
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = "SELECT  IMAGE FROM  Icon WHERE (ID ="+ Utility.ImageID+")";
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.Connection = con;

        SqlParameter ImageID = new SqlParameter("@ID", System.Data.SqlDbType.Int);
        ImageID.Value = context.Request.QueryString["ID"];
        cmd.Parameters.Add(ImageID);
        con.Open();
        SqlDataReader dReader = cmd.ExecuteReader();
        dReader.Read();
        context.Response.BinaryWrite((byte[])dReader["IMAGE"]);
        dReader.Close();
        con.Close();
    }

但它没有向我显示图像。有什么问题?

另外,我有一个下载按钮,当用户点击它时,图像将被下载我是新人不知道我在下载按钮点击事件上放了什么代码?请指导我提前谢谢

【问题讨论】:

    标签: c# asp.net sql-server image


    【解决方案1】:

    这只是示例。Use:

      <asp:image id="Image1" imageUrl="SideImageHandler.ashx?ID=<someId>"/>
    

    在配置中添加:

    <httpHandlers>
      <add verb="*" path="img/*" type="SideImageHandler"/>
    </httpHandlers>
    

    在处理程序中:

      public void ProcessRequest (HttpContext context) 
        { 
              int ID;
              if (context.Request.QueryString["ID"] != null)
                   ID= Convert.ToInt32(context.Request.QueryString["ID"]);
              else
                throw new ArgumentException("No parameter specified");
    
            byte[] imageData= ;//get the image data from the database using the employeeId Querystring
            Response.ContentType = "image/jpeg";
            Response.BinaryWrite(imageData);
    
        } 
    

    【讨论】:

    • @shahroz 我用utility.ImageID代替someId吗?
    • @buddy 好的,您应该根据自己的情况更改此示例。
    猜你喜欢
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 2014-05-24
    相关资源
    最近更新 更多