我想当我点击保存按钮时,会弹出保存对话框,然后选择保存地址,请问高手们,这样该如何实现呢?

解决方案 »

  1.   


    <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page language="java" import="java.io.*"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <%
    InputStream stream;
    String tempfilepath = "c:/temp.xls";
    try {
    stream = new FileInputStream(tempfilepath);
    OutputStream os = null;
    response.setContentType("APPLICATION/DOWNLOAD");
    response.setHeader("Content-Disposition",
    "attachment; filename="
    + java.net.URLEncoder.encode("temp.xls",
    "UTF-8"));
    response.setContentLength(stream.available());
    os = response.getOutputStream();
    int iBytesRead = 0;
    byte[] buffer = new byte[10240000];
    while ((iBytesRead = stream.read(buffer, 0, 10240000)) != -1) {
    os.write(buffer, 0, iBytesRead);
    }
    os.close();
    stream.close();
    response.flushBuffer();
    } catch (FileNotFoundException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    File f = new File(tempfilepath);
    if (f.exists()) {
    f.delete();
    }
    %>
    <body>
    </body>
    </html>
      

  2.   

    当你点击保存按钮的时候,让页面跳转到这个JSP的路径就可以了
      

  3.   

    <a>标签中的url填上文件地址就可以
      

  4.   


    <%
     response.setContentType(fileminitype);
     response.setHeader("Location",filename);
     response.setHeader("Cache-Control", "max-age=" + cacheTime);//filename应该是编码后的(utf-8)
     response.setHeader("Content-Disposition", "attachment; filename=" + filename); 
     response.setContentLength(filelength);
     OutputStream outputStream = response.getOutputStream();
     InputStream inputStream = new FileInputStream(filepath);
     byte[] buffer = new byte[1024];
     int i = -1;
     while ((i = inputStream.read(buffer)) != -1) {
      outputStream.write(buffer, 0, i);
      }
     outputStream.flush();
     outputStream.close();
     inputStream.close();
     outputStream = null;
          %>
      

  5.   

    感谢king_spf 给的参考,结贴了
      

  6.   

    king_spf :另外我还想问一下,这样怎么取到下载后的文件地址呢,就是取选择存放文件的地址?这样能取到吗?怎么取?
      

  7.   

    king_spf :另外我还想问一下,这样怎么取到下载后的文件地址呢,就是取选择存放文件的地址?这样能取到吗?怎么取?
    ---------------------------------------------------------------------------------------------------
    取这个地址有用吗?