服务端代码:返回OutputStream
/**
* 下载zip
* @return
*/
@CrossOrigin
@GetMapping(value = "downloadOcrZip")
public void downloadOcrZip(HttpServletResponse servletResponse){
try {
// 获取压缩文件流
InputStream zipStream = new FileInputStream(new File("D:/ocr/out.zip"));
// 下载文件名中文处理
String downZipFileName = URLEncoder.encode("out.zip".substring("out.zip".lastIndexOf("/") + 1), "UTF-8");
// 下载到浏览器
servletResponse.setHeader("Content-disposition", "attachment; filename*=UTF-8''"+downZipFileName);
BufferedOutputStream bufferedOs = new BufferedOutputStream(servletResponse.getOutputStream());
byte[] buffer = new byte[10240];
int bytesRead = 0;
while ((bytesRead = zipStream.read(buffer)) != -1) {
bufferedOs.write(buffer, 0, bytesRead);
}
bufferedOs.flush();
bufferedOs.close();
zipStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
前端:
// 后端接口请求地址
window.location.href="/***/***/downloadOcrZip"