From 9713f383a61ceedc34c93e1158b265af0ddfcfbb Mon Sep 17 00:00:00 2001 From: backdev-1 Date: Fri, 22 May 2026 15:12:21 +0700 Subject: [PATCH] dev fix download with cyrrilic symbols --- .../java/ru/soune/nocopy/controller/ApiController.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/controller/ApiController.java b/src/main/java/ru/soune/nocopy/controller/ApiController.java index 2c95dda..2df50eb 100644 --- a/src/main/java/ru/soune/nocopy/controller/ApiController.java +++ b/src/main/java/ru/soune/nocopy/controller/ApiController.java @@ -47,7 +47,6 @@ import ru.soune.nocopy.service.user.moderation.UserVerificationService; import ru.soune.nocopy.util.FileUtil; import java.io.File; -import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.stream.Collectors; @@ -609,13 +608,13 @@ public class ApiController { dockViewService.createDockView(viewerRequest, userId); String filename = entityResponse.getFileName(); - String encodedFilename = URLEncoder.encode(filename, StandardCharsets.UTF_8) - .replace("+", "%20"); + ContentDisposition contentDisposition = ContentDisposition.builder("attachment") + .filename(filename, StandardCharsets.UTF_8) + .build(); return ResponseEntity.ok() .contentType(MediaType.APPLICATION_OCTET_STREAM) - .header(HttpHeaders.CONTENT_DISPOSITION, - "attachment; filename*=UTF-8''" + encodedFilename) + .header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition.toString()) .body(bytes); } catch (FileEntityNotFoundException e) { Map errorData = new HashMap<>();