jsp+servlet实现文件下载,在jsp中点击,通过servlet判断读取文件,实现文件的下载jspwebservlet

解决方案 »

  1.   

    2楼我也要个 [email protected]
      

  2.   


    HttpServletResponse response = ServletActionContext.getResponse();
    PrintWriter out;
    try { StringBuilder sb = cb.getCsv(); String csvName = cb.getCsvName(); // String csvName = "MG-" + enterid + "-" + cb.getTime() + ".csv";
    response.setContentType("application/csv; charset=GB2312");
    response.setHeader("Content-Disposition", "inline; filename=\""
    + new String(csvName.getBytes("UTF-8"), "ISO8859-1") + "\""); out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "GB2312")); out.print(sb); out.flush();
    out.close();
    这样基本就差不多了。。
    当然,response.getOutputStream()
    这个要注意,直接获取的是jsp的输出流,建议不要直接用out的,而且是out下的write
      

  3.   

    //JSP文件
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    //为防止下载时文件名乱码统一用utf-8
    <h1>文件共享下载</h1>
    <table>
    <tr><td>aa.png</td><td><a href='MyJsp.jsp/loadServet?filename=aa.png'>点击下载</a></td>tr>
    <tr><td>aa.mp3</td><td><a href='MyJsp.jsp/loadServet?filename=aa.mp3'>点击下载</a></td></tr>
    <tr><td>cc.rmvb</td><td><a href='MyJsp.jsp/loadServet?filename=cc.rmvb'>点击下载</a></td></tr>
    </table>
    //Servlert文件
    response.setContentType("text/html;charset=utf-8");
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    //演示下载
    String filename=request.getParameter("filename");//获取要下载的文件名
    String name=new String(filename.getBytes("iso-8859-1"),"utf-8");//String name=java.net.URLDecoder.decode(name0, "utf-8");
    response.setHeader("Content-Disposition", "attachment;filename="+name);
    //先读取该图片,再将数据发给浏览器
    //获取要下载文件的全路径(我所有文件放在WebRoot/res/)
    String path=this.getServletContext().getRealPath("/res/"+name);
    //创建输入文件流
    FileInputStream fis=new FileInputStream(path);
    //创建一个缓冲字节数组
    byte []buff=new byte[1024];
    int len=0;//表示实际每次读取多少个字节
    OutputStream os=response.getOutputStream();
    while((len=fis.read(buff))>0){
    os.write(buff, 0, len);
    }
    //关闭资源
    fis.close();
      

  4.   

    都没有我想要的答案。各位写的代码都是直接把文件放在了jsp也的<a>中,我要的是jsp页的文件名是从数据库中读出的,数据库中已经存有了文件的路径,在jsp页从数据库中获取路径,然后通过servlet判断进行下载。。
      

  5.   

    我也十分的想要啊   [email protected]