/**
* @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, "文件已經(jīng)找不到咯. 試試別的文件吧!");
} finally {
if (deleteFile) {
FileUtils.deleteQuietly(file);
}
}
}
這是不是更好點
Java實現(xiàn)文件下載功能Java文件下載的幾種方式 支持在線打開文件的一種方式 網(wǎng)絡(luò)url下載,并寫入瀏覽器 參考:https://www.cnblogs.com/ungshow/archive/2...