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);
        }
    }
  • 相关阅读:
    [LintCode] Maximum Subarray Difference
    [HDU 3415] Max Sum of Max-K-sub-sequence
    [LintCode] Count of Smaller Number before itself
    [LeetCode] Invert Binary Tree
    [LintCode] Max Tree
    [LeetCode] Implement Stack using Queues
    [LintCode] Maximum Subarray III
    [LeetCode] Basic Calculator & Basic Calculator II
    [LeetCode] Rectangle Area
    Tensorflow[目录结构]
  • 原文地址:https://www.cnblogs.com/SasaL/p/10607436.html
Copyright © 2011-2022 走看看