• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    将图片储存在MySQL数据库中的几种方法

    通常对用户上传的图片需要保存到数据库中。

    解决方法一般有两种:

    1、将图片保存的路径存储到数据库;

    2、将图片以二进制数据流的形式直接写入数据库字段中。

    以下为具体方法:

    一、保存图片的上传路径到数据库:

      string uppath="";//用于保存图片上传路径
      //获取上传图片的文件名
      string fileFullname = this.FileUpload1.FileName;
      //获取图片上传的时间,以时间作为图片的名字可以防止图片重名
      string dataName = DateTime.Now.ToString("yyyyMMddhhmmss");
      //获取图片的文件名(不含扩展名)
      string fileName = fileFullname.Substring(fileFullname.LastIndexOf("\\") + 1);
      //获取图片扩展名
      string type = fileFullname.Substring(fileFullname.LastIndexOf(".") + 1);
      //判断是否为要求的格式
      if (type == "bmp" || type == "jpg" || type == "jpeg" || type == "gif" || type == "JPG" || type == "JPEG" || type == "BMP" || type == "GIF")
      {
       //将图片上传到指定路径的文件夹
       this.FileUpload1.SaveAs(Server.MapPath("~/upload") + "\\" + dataName + "." + type);
       //将路径保存到变量,将该变量的值保存到数据库相应字段即可
       uppath = "~/upload/" + dataName + "." + type;
      }

    二、将图片以二进制数据流直接保存到数据库:

    引用如下命名空间:

        using System.Drawing;
      using System.IO;
      using System.Data.SqlClient;
      设计数据库时,表中相应的字段类型为iamge
      保存:
      //图片路径
      string strPath = this.FileUpload1.PostedFile.FileName.ToString ();
      //读取图片
      FileStream fs = new System.IO.FileStream(strPath, FileMode.Open, FileAccess.Read);
      BinaryReader br = new BinaryReader(fs);
      byte[] photo = br.ReadBytes((int)fs.Length);
      br.Close();
      fs.Close();
      //存入
      SqlConnection myConn = new SqlConnection("Data Source=.;Initial Catalog=stumanage;User ID=sa;Password=123");
      string strComm = " INSERT INTO stuInfo(stuid,stuimage) VALUES(107,@photoBinary )";//操作数据库语句根据需要修改
      SqlCommand myComm = new SqlCommand(strComm, myConn);
      myComm.Parameters.Add("@photoBinary", SqlDbType.Binary, photo.Length);
      myComm.Parameters["@photoBinary"].Value = photo;
      myConn.Open();
      if (myComm.ExecuteNonQuery() > 0)
      {
       this.Label1.Text = "ok";
      }
      myConn.Close();
      读取:
      ...连接数据库字符串省略
      mycon.Open();
      SqlCommand command = new
      SqlCommand("select stuimage from stuInfo where stuid=107", mycon);//查询语句根据需要修改
      byte[] image = (byte[])command.ExecuteScalar ();
      //指定从数据库读取出来的图片的保存路径及名字
      string strPath = "~/Upload/zhangsan.JPG";
      string strPhotoPath = Server.MapPath(strPath);
      //按上面的路径与名字保存图片文件
      BinaryWriter bw = new BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate));
      bw.Write(image);
      bw.Close();
      //显示图片
      this.Image1.ImageUrl = strPath;
      //采用这两种方式可以根据实际需求灵活选择。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    您可能感兴趣的文章:
    • MySQL中可为空的字段设置为NULL还是NOT NULL
    • MySQL中字段类型char、varchar和text的区别
    • MySQL数据库迁移快速导出导入大量数据
    • shell脚本操作mysql数据库删除重复的数据
    • MySQL实现类似Oracle序列的方案
    • mysql实现sequence功能的代码
    • Can''t connect to local MySQL through socket ''/tmp/mysql.sock''解决方法
    • Mysql常用函数大全(分类汇总讲解)
    • 利用MySQL主从配置实现读写分离减轻数据库压力
    • MySQL关于sql_mode解析与设置讲解
    上一篇:MySQL存储文本和图片的方法
    下一篇:SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    将图片储存在MySQL数据库中的几种方法 将,图片,储,存在,MySQL,数据库,