Servlet下载文件

来源:互联网 发布:动画宣传片制作软件 编辑:程序博客网 时间:2024/05/21 09:30

Java Servlet下载文件的代码如下:

import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.*;public class ExcelServlet extends HttpServlet {    protected void doPost(HttpServletRequest request, HttpServletResponse response){        this.doGet(request,response);    }    protected void doGet(HttpServletRequest request, HttpServletResponse response){        try{            String path = "D:\\GeoInfoService_List\\GeoInfoService\\web\\file\\template.xls";            File f = new File(path);            response.setHeader("Content-disposition", "attachment; filename=output.xls");// 设定输出文件头            response.setContentType("application/x-msdownload");            OutputStream os = response.getOutputStream();            FileInputStream fis = new FileInputStream(f);            BufferedInputStream bis = new BufferedInputStream(fis);            byte data[] = new byte[1024];            int length = -1;            while((length = bis.read(data)) != -1){                os.write(data,0,length);            }            bis.close();            os.flush();            os.close();        }        catch(Exception e){            e.printStackTrace();        }    }}

不要在os上再包一层BufferdOutputStream用它来write,这样会导致下载的文件比实际的文件小,导致文件流部分丢失,文件损坏无法打开。

原创粉丝点击