zoukankan      html  css  js  c++  java
  • servletResponse 文件下载

    package response;

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.URLEncoder;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    //文件下载
    public class ResponseDemo3 extends HttpServlet {
        
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String path = this.getServletContext().getRealPath("/downloads/th.jpeg");
            String filename = path.substring(path.lastIndexOf("\")+1);
            //获取下载文件名
    //        response.setHeader("content-disposition", "attachment;filename="+filename);
            //如果下载文件为中文文件,文件名需要url编码
            response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(filename,"utf-8"));
            InputStream in = null;
            OutputStream out = null;
            try {
                in = new FileInputStream(path);
                int len = 0;
                byte[] buf = new byte[1024];
                out = response.getOutputStream();
                while((len = in.read(buf)) != -1){
                    out.write(buf, 0, len);
                }
            }finally{
                try {
                    if(out != null){
                        out.close();
                    }
                }finally{
                    try {
                        if(in != null){
                            in.close();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }

        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }

    }

  • 相关阅读:
    Unity3D Editor模式下批量修改prefab
    3D touch在Unity3D中的使用
    Unity中的协程是什么?
    Unity3D脚本调用Objective C代码实现游戏内购买
    WindowsPhone8拍照功能实现简介
    WindowsPhone App如何扩展能够使用的内存
    SVN 提交代码时提示文件已经存在解决办法
    iOS检查App新版本并更新新版本
    iOS存储数据字典到沙盒
    统计整个Xcode工程代码行数
  • 原文地址:https://www.cnblogs.com/siashan/p/3912534.html
Copyright © 2011-2022 走看看