fix page export failure when title contains non-ASCII characters (#309)

This commit is contained in:
Philip Okugbe
2024-09-13 17:40:24 +01:00
committed by GitHub
parent be0d97661a
commit 0b6730c06f
3 changed files with 11 additions and 7 deletions

View File

@ -59,12 +59,12 @@ export async function exportPage(data: IExportPageParams): Promise<void> {
const req = await api.post("/pages/export", data, { const req = await api.post("/pages/export", data, {
responseType: "blob", responseType: "blob",
}); });
console.log(req?.headers);
const fileName = req?.headers["content-disposition"] const fileName = req?.headers["content-disposition"]
.split("filename=")[1] .split("filename=")[1]
.replace(/"/g, ""); .replace(/"/g, "");
saveAs(req.data, fileName); saveAs(req.data, decodeURIComponent(fileName));
} }
export async function importPage(file: File, spaceId: string) { export async function importPage(file: File, spaceId: string) {
@ -81,7 +81,11 @@ export async function importPage(file: File, spaceId: string) {
return req.data; return req.data;
} }
export async function uploadFile(file: File, pageId: string, attachmentId?: string): Promise<IAttachment> { export async function uploadFile(
file: File,
pageId: string,
attachmentId?: string,
): Promise<IAttachment> {
const formData = new FormData(); const formData = new FormData();
if (attachmentId) { if (attachmentId) {
formData.append("attachmentId", attachmentId); formData.append("attachmentId", attachmentId);
@ -89,7 +93,6 @@ export async function uploadFile(file: File, pageId: string, attachmentId?: stri
formData.append("pageId", pageId); formData.append("pageId", pageId);
formData.append("file", file); formData.append("file", file);
const req = await api.post<IAttachment>("/files/upload", formData, { const req = await api.post<IAttachment>("/files/upload", formData, {
headers: { headers: {
"Content-Type": "multipart/form-data", "Content-Type": "multipart/form-data",

View File

@ -182,7 +182,7 @@ export class AttachmentController {
if (!inlineFileExtensions.includes(attachment.fileExt)) { if (!inlineFileExtensions.includes(attachment.fileExt)) {
res.header( res.header(
'Content-Disposition', 'Content-Disposition',
`attachment; filename="${attachment.fileName}"`, `attachment; filename="${encodeURIComponent(attachment.fileName)}"`,
); );
} }

View File

@ -61,7 +61,8 @@ export class ImportController {
res.headers({ res.headers({
'Content-Type': getMimeType(fileExt), 'Content-Type': getMimeType(fileExt),
'Content-Disposition': 'attachment; filename="' + fileName + '"', 'Content-Disposition':
'attachment; filename="' + encodeURIComponent(fileName) + '"',
}); });
res.send(rawContent); res.send(rawContent);