zoukankan      html  css  js  c++  java
  • 图片存入数据库并取出显示

    path是图片路径。

    /// <summary>
    /// 将图片转成二进制
    /// </summary>
    /// <param name="FilePath"></param>
    /// <returns></returns>
    public static byte[] ImageDatabytes(string FilePath)
    {
    if (!File.Exists(FilePath))
    {
    return null;
    }
    Bitmap myBitmap = new Bitmap(System.Drawing.Image.FromFile(FilePath));
    using (MemoryStream curImageStream = new MemoryStream())
    {
    myBitmap.Save(curImageStream, System.Drawing.Imaging.ImageFormat.Png);
    curImageStream.Flush();
    byte[] bmpBytes = curImageStream.ToArray();
    //如果转字符串的话
    //string BmpStr = Convert.ToBase64String(bmpBytes);
    return bmpBytes;
    }
    }

    aspx用一般应用程序把图片上传到指定文件夹下
     public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/html";
                HttpServerUtility server = context.Server;
                HttpRequest request = context.Request;
                HttpResponse response = context.Response;
    
                HttpPostedFile file = null;
                if (context.Request.Files != null && context.Request.Files.Count > 0)
                {
                    file = context.Request.Files[0];
                    if (file.ContentLength > 0)
                    {
                        string extName = Path.GetExtension(file.FileName);
                        string fileName = Guid.NewGuid().ToString();
                        string fullName = fileName + extName;
    
                        string imageFilter = ".jpg|.png|.gif|.ico";// 随便模拟几个图片类型
                        if (imageFilter.Contains(extName.ToLower()))
                        {
                            string phyFilePath = server.MapPath("~/Upload/Image/") + fullName;
                            file.SaveAs(phyFilePath);
                            bool flage = IntoSQL(request, response);  //存数据库
                            if (flage)
                            {
                                response.Write("<script>alert('上传成功');history.back()</script>");
                                //response.Write("<script language=javascript>history.go(-2);</script>");
                                //response.Write("上传成功!文件名:" + fullName + "<br />");
                                //response.Write(string.Format("<img src='Upload/Image/{0}'/>", fullName));
                            }
                        }
                    }
                }
            }

    借助一般应用程序,页面前端image标签把src指向“一般应用程序” 可以传相应的参数,来确定显示哪一张

     <img src="AppService/EditPicture.ashx?GOODSID=<%=goodsID %>" class="miniztpic" alt="" />

    一般应用程序主要代码如下:

    public void ProcessRequest(HttpContext context)
        {
            //context.Response.ContentType = "text/plain";
            //context.Response.Write("Hello World");
            string goodsID = context.Request.QueryString["GOODSID"];
            WeChatBLL.ItemsListBLL itemsListBLL = new WeChatBLL.ItemsListBLL();
    
            System.Collections.Generic.List<MemberShip.ReplacementItem> replacementItemList = itemsListBLL.GetReplacementItemList();  //查询数据库所以图片
    
            Object o = "";
            if (goodsID == null || goodsID == "")
            {
                //o = voucherEditorContext.Voucher.VoucherData.Tables["GOODSINFO"].Rows[0][scenePropertyDetail.PropertyCode];
            }
            else
            {
                foreach (var item in replacementItemList)  //循环图片列表
                {
                    if (item.ItemID == goodsID)  //当图片id相等时
                    {
                        if (item.ItemPhotos != null)
                        {
                            o = item.ItemPhotos[0];  //直接把数据库二进制赋值给o
                        }
                    }
                }
            }
    
            if (o is DBNull || o.ToString() == "")
            {
                return;
            }
            else
            {
                byte[] image = (Byte[])o;
    
                context.Response.BinaryWrite(image);  //返回二进制图片,页面会自动显示
            }
        }
  • 相关阅读:
    (2)远程管理线上服务之sshd服务
    (1)远程管理线上服务之sshd服务
    自建yum仓库
    CentOS7安装MySQL报错Failed to start mysqld.service: Unit not found解决办法
    ssh(Spring,Struts2,Hibernate)注解版整合
    Hibernate关联映射(多对一,一对多, 一些属性(Cascade,inverse,order by))
    HQL查询(分页查询,动态sql查询,参数查询)
    初识Oracle
    ajax获取属性值
    关于SpringMvc返回值类型 Object使用
  • 原文地址:https://www.cnblogs.com/wwfjcy479/p/4108715.html
Copyright © 2011-2022 走看看