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

关于二进制图片问题
一、问题前描述:
1.我的图片是以二进制方式存入SQL2008中。
2.图片在GridView中的一列对应显示。
3.GridView中有一列为编辑列,点编辑弹出一个可移动层,层里面有一个FileUpload控件还有一个img控件和其他控件如TextBox,DropListDown;
二、问题:

当我点编辑时,弹出层后,层里的img控件如何显示当前编辑行的二进制图片?

最后40分送上,希望可以给我思路,示例网址等等,谢谢!

------解决方案--------------------
refer:
http://www.cnblogs.com/insus/archive/2012/03/08/2385223.html

or:
http://www.cnblogs.com/insus/articles/1430434.html
------解决方案--------------------
C# code

/// <summary>
    /// 返回要保存的文件路径
    /// </summary>
    /// <returns></returns>
    [WebMethod]
    public string Fileupload()
    {
        string savePath = "";
        string fileName = txtLogoPath.FileName;//获取准备上传的文件的名称
        string filePath = txtLogoPath.PostedFile.FileName;//获取准备上传文件的物理路径
        try
        {
            int length = txtLogoPath.PostedFile.ContentLength;//获取准备上传的文件的大小
            if (length < 2000000)//当文件小于2000000字节,即2M时:
            {
                string exec = Path.GetExtension(fileName);//获取文件的后缀名
                if (exec.ToUpper() == ".GIF" || exec.ToUpper() == ".JPG" || exec.ToUpper() == ".JPEG" || exec.ToUpper() == ".PNG" || exec.ToUpper() == ".BMP")
                {
                    string newName = DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + exec;
                    //完整路径
                    savePath = @"../../images/BusinessLogo/" + newName;//数据库储存的路径

                    txtLogoPath.SaveAs(Server.MapPath(@"/images/BusinessLogo/" + newName));//实际保存的路径
                    ViewState["Conver"] = newName;
                }
                else if (exec.ToUpper() == "" || exec.ToUpper() == null) { savePath = "../../images/BusinessLogo/BaseLine.png"; }// Response.Write("{\"state\":\"0\",\"errMess\":\"请选择Logo文件!\"}"); Response.End(); }
                else { Response.Write("{\"state\":\"2\",\"errMess\":\"\"}"); Response.End(); }
            }
            else { Response.Write("{\"state\":\"3\",\"errMess\":\"\"}"); Response.End(); }
        }
        catch (Exception ex)
        {
            Common.MessageBox(this, "保存文件失败,详细信息为:" + ex.Message);
        }
        return savePath;
    }