@GetMapping("/download") @ResponseBody public ResponseEntity serveFile(@RequestParam String filename) throws IOException{ filename=new String(filename.getBytes(),"utf-8");//有没有这句话 Resource file=new FileSystemResource("D:\\workspace\\idea_me\\demo\\upload-dir"+File.separator+ filename); HttpHeaders headers = new HttpHeaders(); headers.add("Cache-Control", "no-cache, no-store, must-revalidate"); headers.add("Content-Disposition", String.format("attachment; filename=\"%s\"", file.getFilename())); headers.add("Pragma", "no-cache"); headers.add("Expires", "0"); return ResponseEntity .ok() .headers(headers) .contentLength(file.contentLength()) .contentType(MediaType.parseMediaType("application/octet-stream;charset=utf-8")) .body(new InputStreamResource(file.getInputStream())); }
file.getFilename()
改为
URLEncoder.encode(file.getFilename(), "utf-8")
解决了吗? 我也遇到了这个问题