Java 文件下载功能实现及错误处理 - Spring Boot 示例
/**\n * 文件下载\n * @param filename 文件名称\n * @param response response\n */\n @GetMapping("download/{filename}")\n public void download(@PathVariable("filename") String filename, HttpServletResponse response) throws IOException {\n //1.打开文件,确保其存在\n File file = new File(uploadFolder+filename);\n\n if(!file.exists()){\n //图片不存在,选择默认图片\n file = new File(uploadFolder+"1.jpg");\n }\n\n //2.文件存在,准备下载:设置响应头,让前端认为本次文件内容需要作为“附件”进行下载\n response.setHeader("Content-Disposition", "attachment;filename=" + filename);\n\n //3.开始通过流从文件中读取所有字节内容,向响应输出流中写出所有内容到(客户端)浏览器\n FileInputStream fis = new FileInputStream(file);\n //获取响应对象中的字节输出流\n ServletOutputStream sos = response.getOutputStream();\n\n //4.我们使用commons-io包中的流工具方法,把我们的文件内容对应的输入流,输出到响应输出流中\n IOUtils.copy(fis, sos);\n\n //最后记得关闭流\n fis.close();\n //response中的流由底层代码自行关闭!\n }当文件不存在时,一般会选择返回一个默认的文件或者返回一个错误提示信息给用户。\n\n在上述代码中,如果文件不存在,会选择默认图片进行下载。代码中使用了一个名为"1.jpg"的默认图片,如果该图片也不存在,那么会返回一个空的响应给用户。\n\n可以根据具体的业务需求进行处理,例如返回一个提示信息给用户,或者跳转到一个错误页面等。
原文地址: https://www.cveoy.top/t/topic/pmRj 著作权归作者所有。请勿转载和采集!