问题描述:某WEB项目,客户需要将服务器数据库内的某表数据保存成dbf文件;在使用的时候,需要导出的客户端用户点击一个按钮,然后就把数据保存在其机器某个目录(比如:d:\dbffiledir),
我的思路:客户端选择需要保存的目录和文件名,点击按钮,向服务器提交需求,服务器根据接收到的参数,生成需要的数据传给SqlDataReader,然后通过Reader的循环,使用流方式写到dbf文件内;
在本机测试的时候,通过;挂在服务器后,发现,这种方法,只是把数据写在了服务器端目录(比如:d:\dbffiledir)了,而客户端根本就没有写!由于生成的文件有的很大,近乎100M,
如果生成后再下载我觉得不是一个好办法;有没有一种办法,服务器端可以边生成数据,边传向客户端,边向客户端机器下的目录内写?如果有请高手提供点儿思路!谢谢!!

解决方案 »

  1.   

    把读出来的东西直接输出到response流里,不要生成文件了
      

  2.   

    web 没有这样的权限,只能像孟子所说提供下载.
    或者可以自己做ActiveX或嵌入winform来做
      

  3.   

    直接生成文件
    Response.AddHeader("Content-Disposition", "attachment; filename=test.csv");
    Response.ContentType = "application/ms-excel";
    Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
    Response.Write(sw);//sw==StringBuilder 或者 StreamWriter StringWriter等
    Response.End();