URL url = new URL(fileUrl.substring(0, fileUrl.lastIndexOf("/"))
+ URLEncoder.encode(originalFileName, "utf-8").replaceAll("\\+", "%20"));
public void export(String fileUrl, String fileName, HttpServletResponse response) {
try {
// 设置response参数,可以打开下载页面
response.reset();
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + new String((fileName + ".xlsx").getBytes(), StandardCharsets.ISO_8859_1));
ServletOutputStream outputStream = response.getOutputStream();
String originalFileName = fileUrl.substring(fileUrl.lastIndexOf("/"));
URL url = new URL(fileUrl.substring(0, fileUrl.lastIndexOf("/"))
+ URLEncoder.encode(originalFileName, "utf-8").replaceAll("\\+", "%20"));
BufferedInputStream bis = new BufferedInputStream(url.openStream());
BufferedOutputStream bos = new BufferedOutputStream(outputStream);
byte[] buff = new byte[8192];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bis.close();
bos.close();
outputStream.flush();
outputStream.close();
} catch (Exception e) {
log.error("下载失败:{}", e);
}
}