From 97f583cd9c43eb2753cdbd2596682874123ad085 Mon Sep 17 00:00:00 2001 From: emeric Date: Sun, 23 Mar 2025 15:22:30 +0100 Subject: [PATCH] Made export names consistent --- src/lms/ui/admin/TracingView.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lms/ui/admin/TracingView.cpp b/src/lms/ui/admin/TracingView.cpp index 2d6b6812..81021263 100644 --- a/src/lms/ui/admin/TracingView.cpp +++ b/src/lms/ui/admin/TracingView.cpp @@ -20,6 +20,7 @@ #include "TracingView.hpp" #include +#include #include #include #include @@ -49,7 +50,14 @@ namespace lms::ui void handleRequest(const Wt::Http::Request&, Wt::Http::Response& response) { response.setMimeType("application/gzip"); - suggestFileName(core::stringUtils::toISO8601String(Wt::WDateTime::currentDateTime()) + "-traces.json.gz"); + + auto encodeHttpHeaderField = [](const std::string& fieldName, const std::string& fieldValue) { + // This implements RFC 5987 + return fieldName + "*=UTF-8''" + Wt::Utils::urlEncode(fieldValue); + }; + + const std::string cdp{ encodeHttpHeaderField("filename", "LMS_traces_" + core::stringUtils::toISO8601String(Wt::WDateTime::currentDateTime()) + ".json.gz") }; + response.addHeader("Content-Disposition", "attachment; " + cdp); boost::iostreams::filtering_ostream gzipStream; gzipStream.push(boost::iostreams::gzip_compressor{});