springboot文件下载

41 阅读1分钟

控制器处代码

@GetMapping("/download")
public void download(@RequestParam String fileName, HttpServletResponse response){
    try{
        System.out.println("file download start.................................");
        FileInputStream fileInputStream=new FileInputStream("D://"+fileName);
        BufferedInputStream bufferedInputStream=new BufferedInputStream(fileInputStream);
        OutputStream os = response.getOutputStream();
        byte[] bytes = new byte[bufferedInputStream.available()];
        bufferedInputStream.read(bytes);
        response.reset();
        response.setContentType("application/octet-stream");
        response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));  // 注意,这里要设置文件名的编码,否则中文的文件名下载后不显示
        // 写出字节数组到输出流
        os.write(bytes);
        // 刷新输出流
        os.flush();

    }catch (Exception e){
        e.printStackTrace();
    }
}

apifox测试下载

image.png 下载成功