C # .net 从数据库导出word文档至本地

title:C # 从数据库导出word文档至本地

问题描述

word文档从数据库导入导出写好后,在服务器上进行发布,发布后点击导出按钮,文档存储在服务器中,没有下载至本地。

word文档从数据库导出代码

 string name = TextBox2.Text.Trim();//前台传入文件名
  FileStream fs;
        BinaryWriter bw;
        //设定允许读取到缓冲区的最大长度
        int buffersize = 100;
        //要将字节流读入的缓冲区
        byte[] outbyte = new byte[buffersize];
        //用于记录已经读取的字节数
        long reval = 1;
        //字段中的索引,从这里开始读取操作
        long startIndex;
        //FileStream对象将封装的文件的相对路径或绝对路径
        string path = "E:/" + name + ".docx";
        string filePath = @"" + path + "";
        string sql = "select 数据表数据字段 from 表名 WHERE Name_File = @NameFile";
        SqlParameter[] _params = {
                new SqlParameter("@NameFile", name)
            };
        SqlDataReader reader = SqlHelper.ExecuteReader(数据库链接, CommandType.Text, sql, _params);
        while (reader.Read())
        {
            fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write);
            bw = new BinaryWriter(fs);
            startIndex = 0;
            //将字节流读入outbyte缓冲区中并返回读取的字节数
            reval = reader.GetBytes(0, startIndex, outbyte, 0, buffersize);
            //当读取的字节流达到缓冲区允许的最大长度时要卸载缓冲区内的数据并将数据写入文件
            while (reval == buffersize)
            {
                bw.Write(outbyte);
                bw.Flush();
                //重新设定开始读取的位置,并继续读取和写数据
                startIndex += buffersize;
                reval = reader.GetBytes(0, startIndex, outbyte, 0, buffersize);
            }
            //将缓冲区内最后剩余的数据写入文件
            bw.Write(outbyte, 0, (int)reval - 1);
            bw.Flush();
            bw.Close();
            fs.Close();
        }
        reader.Close();

此时发布代码会将文件下载在服务器的e盘中。
根据网上从服务器下载文件的方法,在上面代码加上以下代码:

 Response.ContentType = "aplication/octet-stream";
        Response.AddHeader("Content-Disposition", "attachment;filename=" + name + ".docx");
        Response.TransmitFile(filePath);

成功下载至本地

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值