Servlet 实现文件下载

文件的下载对于Web应用是必不可少的功能。Servlet实现文件下载只需5步:

  •    准备下载的文件,打开文件输入流。
  •    获取response响应输出流ServletOutputStream。
  •    设置响应头Content-Disposition:attachment;filename=[文件名](此处的filename对应浏览器提示保存文件的文件名)。
  •    读文件到响应输出流。
  •    关闭输出输入流。
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns="/download")
public class Download extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String saveFileName = "hahah.txt";
        String downloadFile = "C:\\Users\\Administrator\\Desktop\\1234.txt";
        resp.setHeader("Content-Disposition", "attachment;filename="+saveFileName);
        ServletOutputStream ops = resp.getOutputStream();
        FileInputStream fis = new FileInputStream(downloadFile);
        BufferedInputStream bis = new BufferedInputStream(fis);
        int n; byte[] b = new byte[512];
        while((n = bis.read(b))!=-1) {            
            ops.write(b, 0, n);
        }
       bis.close();
       ops.close();
    }
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值