解决方案 »

  1.   

    参考下这个:
    packagecom.future.zfs.util;
    importjava.io.BufferedInputStream;
    importjava.io.BufferedOutputStream;
    importjava.io.File;
    importjava.io.FileInputStream;
    importjava.io.IOException;
    importjava.io.InputStream;
    importjava.io.OutputStream;
    importjavax.servlet.ServletException;
    importjavax.servlet.http.HttpServlet;
    importjavax.servlet.http.HttpServletRequest;
    import
    javax.servlet.http.HttpServletResponse;
    @SuppressWarnings(
    "serial")
    publicclassFileDownLoadServlet extends
    HttpServlet{
    @Override
    protectedvoid
    service(HttpServletRequest request, HttpServletResponse response)
    throws
    ServletException, IOException {
    String path
    =request.getParameter("filename"
    );
    path
    =newString(path.getBytes("ISO-8859-1"),"utf-8"
    );
    download(path,request,response);
    }
    @SuppressWarnings(
    "deprecation"
    )
    public
    HttpServletResponse download(String path,HttpServletRequest request, HttpServletResponse response) {
    try
    {
    //path是指欲下载的文件的路径。
    File file =newFile(request.getRealPath("/")+"/"+
    path);
    //取得文件名。
    String filename =
    file.getName();
    //
    取得文件的后缀名。
    //
    String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();
    //以流的形式下载文件。
    InputStream fis =newBufferedInputStream(new
    FileInputStream(file));
    byte[] buffer =newbyte
    [fis.available()];
    fis.read(buffer);
    fis.close();
    //清空response
    response.reset();
    //设置response的Header
    response.addHeader("Content-Disposition", "attachment;filename="+newString(filename.getBytes("utf-8"),"ISO-8859-1"
    ));
    response.addHeader(
    "Content-Length", ""+
    file.length());
    OutputStream toClient
    =new
    BufferedOutputStream(response.getOutputStream());
    response.setContentType(
    "application/octet-stream"
    );
    toClient.write(buffer);
    toClient.flush();
    toClient.close();
    }
    catch
    (IOException ex) {
    ex.printStackTrace();
    }
    return
    response;
    }
    }
      

  2.   

    这种方式不能实现,怪我标题写错了。应该用ActiveXObject的方式。
    CommonDialog1.ShowSave();
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    但是现在遇到创建fso未成功,也就是“var fso = new ActiveXObject("Scripting.FileSystemObject");”这句代码没执行成功。不知道为什么?
      

  3.   

    在页面加一个隐藏的iframe,点按钮时用js改写iframe的src去下载文件不可以吗?
      

  4.   


    你说的意思是点按钮跳转到jsp?或者控制类?然后让java处理数据流,这种和#1楼哥们一样。我想要的效果不是这样。