赞
踩
@PostMapping("/file/download") public AjaxResult downFileById(@RequestBody FileInput input,HttpServletResponse response) throws IOException { String creditCode = input.getCreditCode(); //生成 sso String sso = createSso(creditCode); Long fileId = input.getFileId(); Map<String,Object> requestParam = new HashMap<>(); // 设置请求参数 requestParam.put("sso",sso); requestParam.put("id",fileId); // 调用第三方接口 RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity request = new HttpEntity(requestParam, headers); //当接受一个文件流时必须使用 resource (spring)接收 ResponseEntity<Resource> entity = restTemplate.postForEntity(FILEURL, request,Resource.class); InputStream in = entity.getBody().getInputStream(); //调用下载文件接口 FileUtils fileUtils = new FileUtils(); fileUtils.downloadFile(response,in,"123.doc"); return AjaxResult.success(); } public AjaxResult downloadFile(HttpServletResponse response, InputStream inputStream, String filename) { filename = UriUtils.encode(filename, "UTF-8"); response.setContentType("multipart/form-data;"); response.setContentType("application/force-download"); //设置下载的文件名 response.addHeader("Content-Disposition", "attachment;fileName*=UTF-8''" + filename); byte[] buffer = new byte[1024]; BufferedInputStream bis = null; try { bis = new BufferedInputStream(inputStream); OutputStream os = response.getOutputStream(); int i = bis.read(buffer); while (i != -1) { os.write(buffer, 0, i); i = bis.read(buffer); } } catch (Exception e) { return AjaxResult.error(); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { } } if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { } } } return null; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。