如何在服务器生成文本流直接将文本不保存到硬盘直接下载给用户?就想用户直接点下载一样``该怎么样实现?

解决方案 »

  1.   

    Response.AppendHeader("Content-Disposition", "attachment;filename=文件名.txt");
      

  2.   

    Response.AppendHeader("Content-Disposition", "attachment;filename=文件名.txt");
    response.binarraywrite(xxx);
      

  3.   

    文件名.txt 这个还是要保存在服务器上面呀
      

  4.   

    生成文件流会吗?
    有了文件流就可以这样输出了,下面是一个输入pdf文件的例子private void ViewPdf(Stream fs)
        {
            Response.Clear();
            Response.AddHeader("Content-Disposition", "attachment;FileName=" + HttpUtility.UrlEncode("采购订单.pdf"));
            Response.ContentType = "application/pdf";
            long fileLength = fs.Length;
            int size = 10240;//10K一下载
            byte[] readData = new byte[size];
            if (size > fileLength)
                size = Convert.ToInt32(fileLength);
            long fPos = 0;
            bool isEnd = false;
            while (!isEnd)
            {
                if ((fPos + size) >= fileLength)
                {
                    size = Convert.ToInt32(fileLength - fPos);
                    isEnd = true;
                }
                readData = new byte[size];
                fs.Position = fPos;//注意设置读取的位置
                fs.Read(readData, 0, size);
                Response.BinaryWrite(readData);
                Response.OutputStream.Flush();
                fPos += size;
            }
            fs.Close();
            Response.OutputStream.Close();
            Response.End();//非常重要,没有这句系统会把页面的HTML代码一起输出的。
            Response.Close();
        }