This commit is contained in:
Looly 2023-01-16 10:12:43 +08:00
parent 39369e8f6a
commit 3f811c9f82
2 changed files with 6 additions and 4 deletions

View File

@ -614,8 +614,9 @@ public class JakartaServletUtil {
*/
public static void write(final HttpServletResponse response, final InputStream in, final String contentType, final String fileName) {
final String charset = ObjUtil.defaultIfNull(response.getCharacterEncoding(), CharsetUtil.NAME_UTF_8);
response.setHeader("Content-Disposition", StrUtil.format("attachment;filename=\"{}\"",
URLEncoder.encodeAll(fileName, CharsetUtil.charset(charset))));
final String encodeText = URLEncoder.encodeAll(fileName, CharsetUtil.charset(charset));
response.setHeader("Content-Disposition",
StrUtil.format("attachment;filename=\"{}\";filename*={}''{}", encodeText, charset, encodeText));
response.setContentType(contentType);
write(response, in);
}

View File

@ -613,8 +613,9 @@ public class ServletUtil {
*/
public static void write(final HttpServletResponse response, final InputStream in, final String contentType, final String fileName) {
final String charset = ObjUtil.defaultIfNull(response.getCharacterEncoding(), CharsetUtil.NAME_UTF_8);
response.setHeader("Content-Disposition", StrUtil.format("attachment;filename=\"{}\"",
URLEncoder.encodeAll(fileName, CharsetUtil.charset(charset))));
final String encodeText = URLEncoder.encodeAll(fileName, CharsetUtil.charset(charset));
response.setHeader("Content-Disposition",
StrUtil.format("attachment;filename=\"{}\";filename*={}''{}", encodeText, charset, encodeText));
response.setContentType(contentType);
write(response, in);
}