![](/img/trans.png)
[英]ModelMapper and DozerBeanMapper don't work | Spring Boot REST API
[英]Spring boot rest api csv download don't set file name with extension
我正在使用 OpenCSV 庫為 CSV 下載編寫 REST API。 我正在設置Content-Disposition
以使用文件名設置下載。 目前,文件已下載但文件名未設置或未設置任何擴展名。 它像沒有擴展名的命名download
一樣下載,但是當我打開它時數據很好。
在 controller 中,我為響應設置了Content-Disposition
和Content-Type
。
@GetMapping("/download")
public void download(HttpServletResponse response) throws IOException {
response.setContentType("text/csv;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; file=customers.csv");
service.download(response.getWriter());
}
在這里,我在服務中的響應寫入器中寫入 csv 數據。
public void download(PrintWriter writer) {
List<Resource> resources = this.getData();
try (
CSVWriter csvWriter = new CSVWriter(writer,
CSVWriter.DEFAULT_SEPARATOR,
CSVWriter.NO_QUOTE_CHARACTER,
CSVWriter.DEFAULT_ESCAPE_CHARACTER,
CSVWriter.DEFAULT_LINE_END);
){
csvWriter.writeNext(this.getCsvHeader());
for (Resource resource : resources) {
csvWriter.writeNext(getCsvData(resource));
}
}catch (IOException e) {
log.info("Writing CSV error {}",e.toString());
throw new FailedException();
}
}
Content-Disposition 必須使用屬性“文件名”
response.setHeader("Content-Disposition", "attachment; filename=customers.csv");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.