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

一、输入输出流

1、概念:

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

2、使用方法:

using System.IO;

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

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

读取文字:

技术分享
OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();//打开文件对话框

//将选择的东西读取到文档里
StreamReader sd = new StreamReader(op.FileName,System.Text.Encoding.Default);

//写入文本box中
this.textBox1.Text = sd.ReadToEnd();

sd.Close();//关闭流
技术分享

保存文档:

技术分享
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();
}
技术分享

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

1、上传

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

技术分享
            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));//将图片读入到二进制数组中
            }    
技术分享

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

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

技术分享
            //将图像写入内存
            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;

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。