zoukankan      html  css  js  c++  java
  • Servlet (三) 文件下载(只支持英文文件名)

    package cn.sasa.serv;
    
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class DownloadServlet1 extends HttpServlet {
    
        private static final long serialVersionUID = 1L;
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            String fileName = request.getParameter("fileName");
            // 指定MIME类型
            response.setContentType(this.getServletContext().getMimeType(fileName));
            // 告诉客户端不要直接解释,以附件形式打开(下载)
            response.setHeader("Content-Disposition", "attachment;filename=" +fileName);
    
            String realPath = this.getServletContext().getRealPath("download/" + fileName);
            ServletOutputStream output = response.getOutputStream();
            InputStream input = new FileInputStream(realPath);
    
            int len = 0;
            byte[] buffer = new byte[1024];
    
            while ((len = input.read(buffer)) > 0) {
                output.write(buffer, 0, len);
            }
    
            input.close();
            // output.close();//response获得的output不需要手动关闭
        }
    
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doGet(request, response);
        }
    }
  • 相关阅读:
    近期目标
    HDU
    BZOJ
    UVALive
    UVA
    HNOI2004 宠物收养所 (平衡二叉树)
    UVA
    HDU
    POJ
    康托展开与逆康托展开模板(O(n^2)/O(nlogn))
  • 原文地址:https://www.cnblogs.com/SasaL/p/10607436.html
Copyright © 2011-2022 走看看