From 1e9f8e0f6eca1b8c8be409b8b302157c8a7a4bec Mon Sep 17 00:00:00 2001 From: Falknat Date: Thu, 29 Jan 2026 23:56:50 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=B8=D1=80=D0=B8=D0=BB=D0=B8=D1=86?= =?UTF-8?q?=D0=B0=20=D0=B2=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Исправлена проблема при скачивании прикреплённых файлов или просмотра картинок, когда название было на Русском. --- backend/app/functions/routing.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/app/functions/routing.php b/backend/app/functions/routing.php index d5e70dc..37ecc04 100644 --- a/backend/app/functions/routing.php +++ b/backend/app/functions/routing.php @@ -4,14 +4,19 @@ function routing_static_files() { $requestUri = $_SERVER['REQUEST_URI'] ?? ''; $path = parse_url($requestUri, PHP_URL_PATH); + $path = urldecode($path); // декодируем кириллицу из URL // Отдача файлов из /public/ (принудительное скачивание) if (strpos($path, '/public/') === 0) { $file = dirname(dirname(__DIR__)) . $path; if (is_file($file)) { + $filename = basename($file); + $filename_encoded = rawurlencode($filename); + header('Content-Type: application/octet-stream'); header('Content-Length: ' . filesize($file)); - header('Content-Disposition: attachment; filename="' . basename($file) . '"'); + // RFC 5987: filename* для кириллицы, filename для fallback + header("Content-Disposition: attachment; filename=\"$filename\"; filename*=UTF-8''$filename_encoded"); readfile($file); exit; }