文章原著:https://blog.csdn.net/yugebdw/article/details/78301174

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

解决方法一般有两种:

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数据库中放图片_如何将图片储存在MySQL数据库中相关推荐

  1. mysql删除端口配置文件_完美解决phpstudy安装后mysql无法启动(无需删除原数据库,无需更改任何配置,无需更改端口)直接共存...

    今天学习php,当然是要先安装好运行环境了,phpstyudy是一个运行php的集成环境, 一键安装对新手很友好,与时作为一个新手,便跟着教程安装了phpstudy集成环境. 很快安装好了,嗯.对新手 ...

  2. mysql的通俗理解_最通俗易懂的理解什么是数据库

    1.什么是数据库呢? 每个人家里都会有冰箱,冰箱是用来干什么的?冰箱是用来存放食物的地方. 同样的,数据库是存放数据的地方.正是因为有了数据库后,我们可以直接查找数据.例如你每天使用余额宝查看自己的账 ...

  3. mysql select 所有表_怎样用SQL语句查询一个数据库中的所有表

    展开全部 查询32313133353236313431303231363533e59b9ee7ad9431333431356639一个数据库中的所有表sql语句是show tables: 显示所有数据 ...

  4. 软件测试mysql基础面试题_测试面试题合集之数据库

    1.数据库增删改查?平时使用场景? INSERT INTO [TABLE_NAME] (column1, column2, column3,...columnN) VALUES (value1, va ...

  5. 安卓访问mysql的源码_【原创源码】安卓数据库简单操作demo

    [Java] 纯文本查看 复制代码public Long updateSql(String text) { ContentValues contentValues = new ContentValue ...

  6. mysql administrator 备份 表_【转】如何使用 MySQL Administrator 管理/备份/还原 My SQL 数据库...

    如何使用 MySQL Administrator 管理/备份/还原 My SQL 数据库 MySQL Administrator 是什么软件? MySQL Administrator 是一个专门用于管 ...

  7. mysql数据库读写操作_一看就会,MySQL数据库的基本操作(二)

    上一节学习了MySQL数据库的基本操作的几个命令,1.登陆数据库:mysql -h localhost -u root -p.2.查看已有的数据库命令:show databases. 3.创建自己的数 ...

  8. mysql数据库check命令_利用mysqlcheck命令快速修复mysql数据库

    表索引异常,修复msql表索引(表引擎:myisam) myisamchk --safe-recover /usr/local/mysql/data/ename_news/dede_arccache ...

  9. mysql数据库开发经历_六年开发经验,整理Mysql数据库技巧笔记,全网最详细的笔记集合!...

    数据库 表 DML DQL 多表查询 内连接查询 外连接查询 子查询 将一条查询语句作为一张虚拟表 Mysql约束 主键约束 特点:主键约束默认包含非空和唯一两个功能. 一张表只能有一个主键. 主键一 ...

最新文章

  1. Java单例模式个人总结(实例变量和类变量)
  2. STM32F103 IAP升级时在app文件中放置标志字节处的地址计算
  3. OpenGL Cubic Bezier三次贝塞尔曲线修补实例
  4. 对话李飞飞,揭秘国际体育赛事风“云”背后的黑科技
  5. 解决React Native报错:Error:Found unexpected optical bounds (red pixel)
  6. cstring判断包含字符串_Python字符串方法之-解决判断问题
  7. 如何使用Swift Playgrounds制作东西
  8. mybatis传递多个参数_MyBatis 映射器
  9. 今天的绿得像碧玉的 飞鸽
  10. uuid会重复吗_UUID的版本你知道吗
  11. 《PhoneGap移动应用开发手册》——1.5节获取设备位置传感器信息
  12. 45届ICPC昆明站热身赛C-Statues
  13. SAP S/4 HANA Cloud自定义报表制作方法二
  14. scala程序启动时,Could not locate executable null\bin\winutils.exe in the Hadoop binaries解决方案...
  15. 编码 GBK 的不可映射字符 (0x81)
  16. 计算机软件方法专利撰写,干货 | 计算机软件专利撰写模板
  17. 马云的妻子曝光,背景十分惊人!没有她就没有今天的阿里巴巴.....
  18. 个人简历管理系统-总结
  19. 浏览器-网页标题的图标
  20. 【通信】基于Matlab实现动态帧时隙ALOHA(Dynamic Framed Slotted ALOHA)算法

热门文章

  1. c程序设计语言布莱恩克尼汉,《C程序设计语言(第2版新版)典藏版》 —1.5.4 单词计数...
  2. 前端面试题(react)
  3. PaaS,BLT模型中的一部分
  4. linux 编译配置内核路由功能,Linux下多播路由的实现-网管专栏,防火墙和路由
  5. otg usb 定位_什么是USB OTG?USB OTG是什么意思
  6. centos6 trouble shooting
  7. C罗8000W英镑到底是多少钱?!
  8. windows 中 vpn连接提示, 虚拟专用网络 由于RAS/虚拟专用网络,服务器上配置的某个策略,服务器用于验证用户名和密码的身份验证方法可能与连接配置文件中的身份证验证方法不匹配
  9. 最接地气的一套PHP面试题(总结不易,踩坑踩到挂了好多面试)
  10. 你对前端开发岗的看法