Skip to content

Commit bf78ee9

Browse files
authored
It's ok to encode the file name in Content-Disposition header, but it's not neccesary to encode blanks. (#799)
Issue: 105672
1 parent fc148fd commit bf78ee9

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

java/src/main/java/com/genexus/webpanels/WebUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ public static String getEncodedContentDisposition(String value, int browserType)
329329
}
330330

331331
String filename = value.substring(eqIdx + 1).trim();
332-
value = value.substring(0, filenameIdx) + String.format("filename*=UTF-8''%1$s; filename=\"%1$s\"", PrivateUtilities.URLEncode(filename, "UTF8"));
332+
value = value.substring(0, filenameIdx) + String.format("filename*=UTF-8''%1$s; filename=\"%1$s\"", PrivateUtilities.URLEncode(filename, "UTF8").replace('+', ' '));
333333

334334
return value;
335335
}

java/src/test/java/com/genexus/webpanels/TestWebUtils.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ public void TestContentDispositionHeaderEncoding6() {
5555
doTest(contentDisposition, expectedContentDisposition);
5656
}
5757

58+
@Test
59+
public void TestContentDispositionHeaderEncoding7() {
60+
String contentDisposition = "attachment; filename=My file.pdf";
61+
String expectedContentDisposition = "attachment; filename*=UTF-8''My file.pdf; filename=\"My file.pdf\"";
62+
doTest(contentDisposition, expectedContentDisposition);
63+
}
5864

5965
private void doTest(String contentDisposition, String expectedContentDisposition) {
6066
doTest(contentDisposition, expectedContentDisposition, HttpContextWeb.BROWSER_CHROME);

0 commit comments

Comments
 (0)