winfrom上传附件,直接转二进制存数据库,话不多说,看代码

此篇博客介绍了如何通过C#实现文件上传功能,包括选择文件、获取附件名及尾缀,并演示了如何将附件转换为二进制数据以便于数据库存储。最后,展示了如何根据二进制数据自动下载并打开附件的过程。
        /// <summary>
        /// 上传附件
        /// </summary>
        string Path = "";//路径
        string suffix = "";//尾缀
        private void simpleButton4_Click_1(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.RestoreDirectory = true;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                Path = ofd.FileName;
                textEdit7.Text = filePath ;//路径
                int index = Path.LastIndexOf("\\");
                suffix = Path.Substring(index + 2);//获取附件名和尾缀
            }
        }
        /// <summary>
        /// 附件转换二进制数据(用于保存数据库)
        /// </summary>
        /// <param name="filePath">附件路径</param>
        /// <returns>二进制</returns>
        private byte[] fileConvertByte(string filePath)
        {

            byte[] bytContent = null;
            System.IO.FileStream fs = null;
            System.IO.BinaryReader br = null;
            try
            {
                fs = new FileStream(filePath, System.IO.FileMode.Open);
            }
            catch
            {
            }
            br = new BinaryReader((Stream)fs);
            bytContent = br.ReadBytes((Int32)fs.Length);
            return bytContent;
        }
        /// <summary>
        /// 二进制数据转换为附件
        /// </summary>
        /// <param name="data">二进制数据</param>
        /// <param name="fileName">附件.后缀</param>
        /// <param name="savePath">保存路径</param>
        /// <returns>保存的相对路径</returns>
        public string ByteConvertFile(byte[] data, string fileName)
        {
            string savePath = "C:\\Users\\Administrator\\Desktop\\";//默认下载的路径
            if (!System.IO.Directory.Exists(savePath))
            {
                Directory.CreateDirectory(savePath);
            }
            savePath += fileName;//文件名和尾缀
            FileStream fs;
            if (System.IO.File.Exists(savePath))
            {
                fs = new FileStream(savePath, FileMode.Truncate);
            }
            else
            {
                fs = new FileStream(savePath, FileMode.CreateNew);
            }
            BinaryWriter br = new BinaryWriter(fs);
            br.Write(data, 0, data.Length);
            br.Close();
            fs.Close();
            return savePath;
        }

      ///自动打开下载的附件
      ///model.filter  二进制
      ///文件对应的名称和尾缀
      OpenFile(ByteConvertFile(model.filter, model.Suffix));//自动打开

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值