From b143b29a78fbbfbf0c29974d4ffb412b4bed86b9 Mon Sep 17 00:00:00 2001 From: backdev-1 Date: Fri, 22 May 2026 14:50:15 +0700 Subject: [PATCH] dev fix download with cyrrilic symbols --- .../java/ru/soune/nocopy/controller/ApiController.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/soune/nocopy/controller/ApiController.java b/src/main/java/ru/soune/nocopy/controller/ApiController.java index 65f917e..5907148 100644 --- a/src/main/java/ru/soune/nocopy/controller/ApiController.java +++ b/src/main/java/ru/soune/nocopy/controller/ApiController.java @@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.web.PageableDefault; +import org.springframework.http.ContentDisposition; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -46,6 +47,7 @@ import ru.soune.nocopy.service.user.moderation.UserVerificationService; import ru.soune.nocopy.util.FileUtil; import java.io.File; +import java.nio.charset.StandardCharsets; import java.util.*; import java.util.stream.Collectors; @@ -605,10 +607,14 @@ public class ApiController { dockViewService.createDockView(viewerRequest, userId); + String filename = entityResponse.getFileName(); + ContentDisposition contentDisposition = ContentDisposition.attachment() + .filename(filename, StandardCharsets.UTF_8) + .build(); + return ResponseEntity.ok() .contentType(MediaType.APPLICATION_OCTET_STREAM) - .header(HttpHeaders.CONTENT_DISPOSITION, - "attachment; filename=\"" + entityResponse.getFileName() + "\"") + .header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition.toString()) .body(bytes); } catch (FileEntityNotFoundException e) { Map errorData = new HashMap<>();