在mysql中上传图片_读取保存文件、图片在数据库中的上传读取

本文介绍了如何在MySQL数据库中进行图片的上传和读取操作。首先讲解了输入输出流的概念和使用,包括读取和保存文件的方法。接着详细阐述了将图像转换为二进制数据上传至数据库的步骤,以及从数据库读取二进制数据并展示图片的流程。
摘要由CSDN通过智能技术生成

一、输入输出流

1、概念:

输入输出流主要用于保存、读取文件,其内容保存在内存中。

2、使用方法:

using System.IO;

//System.IO 命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型。

3、代码段实现读取和保存功能:

读取文字:

48304ba5e6f9fe08f3fa1abda7d326ab.png

OpenFileDialog op = new OpenFileDialog();

op.ShowDialog();//打开文件对话框

//将选择的东西读取到文档里

StreamReader sd = new StreamReader(op.FileName,System.Text.Encoding.Default);

//写入文本box中

this.textBox1.Text = sd.ReadToEnd();

sd.Close();//关闭流

48304ba5e6f9fe08f3fa1abda7d326ab.png

保存文档:

48304ba5e6f9fe08f3fa1abda7d326ab.png

SaveFileDialog save = new SaveFileDialog();

if(save.ShowDialog() == DialogResult.OK)

{

string filename = save.FileName;

StreamWriter sw = new StreamWriter(filename);//开辟一个硬盘空间

sw.Write(this.textBox1.Text);//写入文本内容

sw.Close();

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

二、图像上传到数据库、读取

1、上传

一般是将图像转换成二进制数据后上传:

48304ba5e6f9fe08f3fa1abda7d326ab.png

openFileDialog1.Filter = "*jpg|*.jpg|*bmp|*.bmp|*gif|*.gif"; //规定只能读取图片格式,从内存里读取一张图片

DialogResult dia = openFileDialog1.ShowDialog();

if (dia == DialogResult.OK)

{

string filename = openFileDialog1.FileName;

FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);//将图片读入流中

byte[] imagebytes = new byte[fs.Length];//二进制数组,用以临时存储图像的二进制编码

BinaryReader br = new BinaryReader(fs);//二进制读取器

imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));//将图片读入到二进制数组中

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

然后连接数据库,将imagebytes数据传到库中即可。

2、读取

首先读取数据库中的image数据,定义一个byte[]类型的对象用来接收。

48304ba5e6f9fe08f3fa1abda7d326ab.png

//将图像写入内存

MemoryStream ms = new MemoryStream(imgbytes, 0, imgbytes.Length);

ms.Write(imgbytes, 0, imgbytes.Length);

Image img = Image.FromStream(ms);

//建一个pictureBox控件,接受读取到的图片

this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

this.pictureBox1.Image = img;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值