@GetMapping("/getTemplateFile") @ApiOperation("数据模板下载") public ResponseEntitydownFile(HttpServletRequest request) throws IOException { File file = new File("C/AA"); filename = getFilename(request, filename); //设置响应头 HttpHeaders headers = new HttpHeaders(); //通知浏览器以下载的方式打开文件 headers.setContentDispositionFormData("attachment", filename); //定义以流的形式下载返回文件数据 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); //使用springmvc框架的ResponseEntity对象封装返回数据 return new ResponseEntity<>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK); } public String getFilename(HttpServletRequest request, String filename) throws IOException { //IE不同版本User-Agent中出现的关键词 String[] IEBrowserKeyWords = {"MSIE", "Trident", "Edge"}; //获取请求头代理信息 String userAgent = request.getHeader("User-Agent"); for (String keyWord : IEBrowserKeyWords) { if (userAgent.contains(keyWord)) { //IE内核浏览器,统一为utf-8编码显示 return URLEncoder.encode(filename, "UTF-8"); } } //火狐等其他浏览器统一为ISO-8859-1编码显示 return new String(filename.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)