zoukankan      html  css  js  c++  java
  • 读取保存文件、图片在数据库中的上传读取

    一、输入输出流

    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;
  • 相关阅读:
    最大堆的实现
    更新Android SDK Manager Mac下修改hosts
    快速排序
    含有通配符的字符串匹配(递归)
    geopandas安装问题记录:ImportError,DLL load failedwindows10
    silveright 5.0 搜索代码生成系统
    Insert xml to DB Column
    Enter/Esc Hot Key Silverlight
    Silverlight 页面保存为html出现乱码的问题
    Use dynamic SQL to fix openrowset parameter and Insert xml files into database under given folder
  • 原文地址:https://www.cnblogs.com/huaze/p/4302225.html
Copyright © 2011-2022 走看看