|
|
|
@ -20,6 +20,8 @@ import org.springframework.web.multipart.MultipartFile; |
|
|
|
import javax.servlet.ServletOutputStream; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
import java.io.*; |
|
|
|
import java.net.URLEncoder; |
|
|
|
import java.nio.charset.StandardCharsets; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
@ -128,7 +130,7 @@ public class SysFileServiceImpl implements SysFileService { |
|
|
|
FileInputStream fis = null; |
|
|
|
BufferedInputStream bis = null; |
|
|
|
response.setContentType("application/force-download;charset=utf-8"); |
|
|
|
response.setHeader("Content-disposition", "attachment; filename=" + new String(getFileData.get(0).getFileName().getBytes("gbk"), "iso8859-1")); |
|
|
|
setDownloadContentDisposition(response, getFileData.get(0).getFileName()); |
|
|
|
try { |
|
|
|
//读取文件 |
|
|
|
fis = new FileInputStream(file); |
|
|
|
@ -149,6 +151,18 @@ public class SysFileServiceImpl implements SysFileService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 设置下载响应头。文件名必须加引号,否则文件名中的逗号会被 Chrome 解析成多个 Content-Disposition, |
|
|
|
* 触发 net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION。 |
|
|
|
*/ |
|
|
|
private void setDownloadContentDisposition(HttpServletResponse response, String fileName) throws UnsupportedEncodingException { |
|
|
|
String safeName = fileName == null ? "download" : fileName.replaceAll("[\\r\\n\"]", "_"); |
|
|
|
String asciiFallback = safeName.replaceAll("[^\\x20-\\x7E]", "_"); |
|
|
|
String encodedUtf8 = URLEncoder.encode(safeName, StandardCharsets.UTF_8.name()).replace("+", "%20"); |
|
|
|
response.setHeader("Content-Disposition", |
|
|
|
"attachment; filename=\"" + asciiFallback + "\"; filename*=UTF-8''" + encodedUtf8); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<SysOssEntity> getInspectionFile(SysOssEntity inData) { |
|
|
|
List<SysOssEntity> files1 = sysOssDao.getSysFileByOrderRef2(inData); |
|
|
|
|