客户端点击一按钮后,可下载服务器端指定文件夹下的所有内容.下载前需要选择保存路径,现在的问题是:不知如何弹出路径选择?如何获得所选路径?

解决方案 »

  1.   

    string fileName = "";//客户端保存的文件名
                string filePath = Server.MapPath("");//路径            FileInfo fileInfo = new FileInfo(filePath);
                Response.Clear();
                Response.ClearContent();
                Response.ClearHeaders();
                Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
                Response.AddHeader("Content-Length", fileInfo.Length.ToString());
                Response.AddHeader("Content-Transfer-Encoding", "binary");
                Response.ContentType = "application/octet-stream";
                Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                Response.WriteFile(fileInfo.FullName);
                Response.Flush();
                Response.End();
      

  2.   

    如梦给的只是如何进行下载,我觉得还要进行补充的就是:如果浏览器接收到服务器的http输出流的话,会自动弹出文件保存对话框来进行保存路径的设置。怎样弹出这个文件保存对话框并不是你需要关心的,你关心的应该是怎样将服务器的文件通过HTTP输出来(这个用如梦的方法就可以了),具体到你的需求,就应该是遍历某个文件夹目录,将文件逐个输出。
    如果你的意思是:弹出针对于服务器的文件选择对话框的话,那就没这个技术了,想想也是正常的,谁家站长会给你任意浏览服务器上有什么文件啊?所以你只能使用HTML的标签,列出某个目录下的文件,你再进行选择。
      

  3.   

    楼上的方法是OK的了,Response.ContentType = "application/octet-stream"; 保存的文件类型改这里就行了。
      

  4.   

    需要注意页面编码问题, utf8文件名会成乱码
      

  5.   

    bingo:这不失为一个好思路,能详细告诉我如何调用Winrar吗?