解决下载文件乱码的问题
This commit is contained in:
parent
df92c856af
commit
8344baed68
|
|
@ -1,5 +1,6 @@
|
||||||
package com.electromagnetic.industry.software.data.manage.service.facade;
|
package com.electromagnetic.industry.software.data.manage.service.facade;
|
||||||
|
|
||||||
|
import cn.hutool.core.codec.Base64;
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
|
|
@ -186,28 +187,20 @@ public class EDDataFacadeImpl implements EDDataFacade {
|
||||||
String filePath = storageFilePath + "/" + filePathOfFolder + "/" + edDataInfo.getDataName();
|
String filePath = storageFilePath + "/" + filePathOfFolder + "/" + edDataInfo.getDataName();
|
||||||
|
|
||||||
Assert.isTrue(FileUtil.exist(filePath), "下载文件不存在。");
|
Assert.isTrue(FileUtil.exist(filePath), "下载文件不存在。");
|
||||||
File file = new File(filePath);
|
FileSystemResource fileSystemResource = new FileSystemResource(filePath);
|
||||||
FileSystemResource fileSystemResource = new FileSystemResource(file);
|
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
|
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
|
||||||
String fileName = fileSystemResource.getFilename();
|
|
||||||
byte[] fileNameBytes = fileName.getBytes(StandardCharsets.UTF_8);
|
|
||||||
fileName = new String(fileNameBytes, 0, fileNameBytes.length, StandardCharsets.ISO_8859_1);
|
|
||||||
String attachment = StrFormatter.format("attachment;filename={}", fileName);
|
|
||||||
//headers.add("Content-Disposition", attachment);
|
|
||||||
// headers.set("attachment", fileName);
|
|
||||||
headers.add("Pragma", "no-cache");
|
headers.add("Pragma", "no-cache");
|
||||||
headers.add("Expires", "0");
|
headers.add("Expires", "0");
|
||||||
response.setHeader("content-disposition","attachment;filename=" + URLEncoder.encode(fileName,"UTF-8"));
|
String fileName = Base64.encode(fileSystemResource.getFilename());
|
||||||
// response.setHeader("Content-Disposition", "attachment; filename=\"" + new String(fileSystemResource.getFilename().getBytes("UTF-8"), "ISO8859-1"));
|
response.setHeader("content-disposition","attachment;filename=" + fileName);
|
||||||
// 构建响应实体(可以返回<byte[]或Resource,返回类型取决body入参类型)
|
// 构建响应实体(可以返回<byte[]或Resource,返回类型取决body入参类型)
|
||||||
return ResponseEntity
|
return ResponseEntity
|
||||||
.ok()
|
.ok()
|
||||||
.headers(headers)
|
.headers(headers)
|
||||||
.contentLength(fileSystemResource.contentLength())
|
.contentLength(fileSystemResource.contentLength())
|
||||||
.contentType(MediaType.parseMediaType("application/octet-stream"))
|
.contentType(MediaType.parseMediaType("application/octet-stream;charset=UTF-8"))
|
||||||
.body(new InputStreamResource(fileSystemResource.getInputStream()));
|
.body(new InputStreamResource(fileSystemResource.getInputStream()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue