• Spring Boot实现文件下载功能


    我们只需要创建一个控制器(Controler)文件,即Controller目录下的File_Download.java,其完整目录如下:

    @Controller
    public class File_Download {
    
        //实现Spring Boot 的文件下载功能,映射网址为/download
        @RequestMapping("/download")
        public String downloadFile(HttpServletRequest request,
                                   HttpServletResponse response) throws UnsupportedEncodingException {
    
            // 获取指定目录下的第一个文件
            File scFileDir = new File("E://music_eg");
            File TrxFiles[] = scFileDir.listFiles();
            System.out.println(TrxFiles[0]);
            String fileName = TrxFiles[0].getName(); //下载的文件名
    
            // 如果文件名不为空,则进行下载
            if (fileName != null) {
                //设置文件路径
                String realPath = "E://music_eg/";
                File file = new File(realPath, fileName);
    
                // 如果文件名存在,则进行下载
                if (file.exists()) {
    
                    // 配置文件下载
                    response.setHeader("content-type", "application/octet-stream");
                    response.setContentType("application/octet-stream");
                    // 下载文件能正常显示中文
                    response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
    
                    // 实现文件下载
                    byte[] buffer = new byte[1024];
                    FileInputStream fis = null;
                    BufferedInputStream bis = null;
                    try {
                        fis = new FileInputStream(file);
                        bis = new BufferedInputStream(fis);
                        OutputStream os = response.getOutputStream();
                        int i = bis.read(buffer);
                        while (i != -1) {
                            os.write(buffer, 0, i);
                            i = bis.read(buffer);
                        }
                        System.out.println("Download the song successfully!");
                    }
                    catch (Exception e) {
                        System.out.println("Download the song failed!");
                    }
                    finally {
                        if (bis != null) {
                            try {
                                bis.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                        if (fis != null) {
                            try {
                                fis.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            }
            return null;
        }
    
    }
    

    这样我们就完成了Spring Boot的文件下载功能。

    运行Spring Boot项目后,在浏览器中输入:http://localhost:8080/download , 你会发现什么?那就是你的浏览器已经开始下载E盘music_eg目录下的某一个文件啦(前提是E盘中存在music_eg目录,当然里面还得有文件,本例仅作为测试),如下图所示:

    文件下载

  • 相关阅读:
    【转】Web Service单元测试工具实例介绍之SoapUI
    【节选】刘积仁:怎样才是真正的创业者
    xadmin引入django-import-export导入功能
    django使用xadmin
    Mac Docker安装Redis4.0
    JMeter+Maven+CSV数据驱动
    Selenium+TestNG+CSV数据驱动
    JMeter压测时报“内存不足”故障的9个简单解决方案
    requests+unittest+ddt+xlrd+pymysql+BeautifulReport数据驱动
    Mac Docker安装MySQL5.7
  • 原文地址:https://www.cnblogs.com/xl-phoenix/p/10094704.html
Copyright © 2020-2023  润新知