JAVA实现下载浏览器可以识别的TXT等文件。

今天在JS中写了个连接去下载一个TXT,但是发现这种能被浏览器解析的文件浏览器是不会下载的而是直接打开,这个时候就需要用到下面的方法。(ps需要用到两个jar包:commons-fileupload.jar和commons-io.jar)

@AutoWrite
ServletContext servletContext;

@RequestMapping("download.do")
public void fileDownload(HttpServletResponse response, String fileName){
    //获得根路径
    String path = servletContext.getRealPath("/");

    //自动判断下载类型
    response.setContentType("multipart/form-data");

    //设置响应头,让浏览器下载而不是打开 downloadName是下载下来之后的文件名
response.setHeader("Content-Disposition","attachment;fileName="+downloadName);


    File file = new File(path+fileName);
    try{
        FileInputStream fi = new FileInputStream(file);

        ServletOutputStream out = servletContext.getOutputStream();

        int b =0;
        byte[] byte = new byte[512];
        while(b != -1){
            b = fi.read(byte);//读
            out.write(byte,0,b);//写
        }
    }catch(IOException e){
        e.printStackTrace();
    }finally{
        inputStream.close();  
        out.close();  
        out.flush(); 
    }
}


    @Override  
    public void setServletContext(ServletContext servletContext) {  
        this.servletContext = servletContext;  
    } 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值