diff --git a/src/main/java/ru/soune/nocopy/controller/ApiController.java b/src/main/java/ru/soune/nocopy/controller/ApiController.java index 31f6d6b..716a797 100644 --- a/src/main/java/ru/soune/nocopy/controller/ApiController.java +++ b/src/main/java/ru/soune/nocopy/controller/ApiController.java @@ -610,10 +610,12 @@ public class ApiController { String encodedFilename = URLEncoder.encode(filename, StandardCharsets.UTF_8) .replace("+", "%20"); + String safeFilename = filename.replaceAll("[^\\x00-\\x7F]", "_"); + return ResponseEntity.ok() .contentType(MediaType.APPLICATION_OCTET_STREAM) .header(HttpHeaders.CONTENT_DISPOSITION, - "attachment; filename*=UTF-8''" + encodedFilename) + "attachment; filename=\"" + safeFilename + "\"; filename*=UTF-8''" + encodedFilename) .body(bytes); } catch (FileEntityNotFoundException e) { Map errorData = new HashMap<>();