文件下载案例

来源:互联网 发布:淘宝靠谱电玩店 编辑:程序博客网 时间:2024/05/22 13:52

重点在于文件名的编码,如果不进行设置,会读取不到要下载到文件名

public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        //通过路径得到一个输入流        String path = this.getServletContext().getRealPath("/WEB-INF/classes/美女.jpg");        FileInputStream fis = new FileInputStream(path);        //创建字节输出流        ServletOutputStream sos = response.getOutputStream();        //得到要下载的文件名        String filename = path.substring(path.lastIndexOf("\\")+1);        //设置文件名的编码        filename = URLEncoder.encode(filename, "UTF-8");//将不安全的文件名改为UTF-8格式        //告知客户端要下载文件        response.setHeader("content-disposition", "attachment;filename="+filename);        response.setHeader("content-type", "image/jpeg");        //执行输出操作        int len = 1;        byte[] b = new byte[1024];        while((len=fis.read(b))!=-1){            sos.write(b,0,len);        }        sos.close();        fis.close();    }