JavaWeb 下载Demo

JavaWeb 继承 Httpservlet 类实现文件下载的功能

package com.gen;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;


public class downController extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 1.获取文件路径
        String path = "F:\\Java\\java-01-maven\\src\\main\\resources\\1.jpg";
        // 2.设定文件的名字
        String pathName = path.substring(path.lastIndexOf("\\")+1);
        // 3.让浏览器能够支持下载我们需要的东西
        resp.setHeader("Content-disposition","attachment;filename"+ URLEncoder.encode(pathName,"utf-8") );
        //4.获取文件下载的输入流
        FileInputStream fileInputStream = new FileInputStream(path);
        //5.设定buffer缓冲区
        byte[] buffer = new byte[1024];
        //6.获取OutputStream文件
        ServletOutputStream outputStream = resp.getOutputStream();
        //7.将fileOutputStream写入到buffer缓冲区
        int len = 0;
        while ((len = fileInputStream.read(buffer))>0){
            outputStream.write(buffer,0, len);
        }
        fileInputStream.close();
        outputStream.close();
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

 

posted @ 2020-11-16 23:25  GenLang  阅读(306)  评论(0)    收藏  举报