/**
* @param file 要删除的文件
* @param deleteFile 是否删除源文件
* @return
* @throws BaseException
*/
protected ResponseEntity<byte[]> response(File file, boolean deleteFile) throws Exception {
return response(file, deleteFile, null);
}
/**
* @param file 需要下载的文件
* @param deleteFile 下载完毕是否要删除
* @param fileName 下载文件的文件命名
* @return 文件流
* @throws Exception 下载文件时的异常说明
*/
protected ResponseEntity<byte[]> response(File file, boolean deleteFile, String fileName) throws Exception {
if (StringUtils.isEmpty(fileName)) {
fileName = file.getName();
}
HttpHeaders headers = new HttpHeaders();
headers.setContentDispositionFormData("attachment", URLEncoder.encode(fileName, "UTF-8"));
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
try {
return new ResponseEntity<>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK);
} catch (IOException e) {
logger.error(String.format("生成下载文件%s失败", fileName), e);
throw new BaseException(400, "文件已经找不到咯. 试试别的文件吧!");
} finally {
if (deleteFile) {
FileUtils.deleteQuietly(file);
}
}
}
这是不是更好点
Java实现文件下载功能Java文件下载的几种方式 支持在线打开文件的一种方式 网络url下载,并写入浏览器 参考:https://www.cnblogs.com/ungshow/archive/2...