服务端代码:返回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"