Skip to content

Commit 6a3da7c

Browse files
committed
Fix a FormData line breaks issue
1 parent 3f7f245 commit 6a3da7c

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

packages/core/src/FormData.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,26 @@ class FormData {
2929
public async getBody() {
3030
let buffer = Buffer.alloc(0);
3131
for (const formFile of this.files) {
32+
if (buffer.length > 0) {
33+
buffer = Buffer.concat([buffer, Buffer.from("\r\n", "utf-8")]);
34+
}
3235
let temp = `--${boundary}\r\n`;
3336
temp += `Content-Type: ${formFile.contentType}\r\n`;
3437
temp +=
3538
`Content-Disposition: form-data; name="${formFile.name}"; filename="${formFile.filename}"\r\n\r\n`;
3639
buffer = Buffer.concat([buffer, Buffer.from(temp, "utf-8")]);
37-
let fileBuffer = Buffer.alloc(0);
40+
let fileBuffer: Buffer;
3841
if (typeof formFile.content === "string") {
39-
fileBuffer = Buffer.from(`${formFile.content}\r\n`, "utf-8");
42+
fileBuffer = Buffer.from(formFile.content, "utf-8");
4043
} else if (Buffer.isBuffer(formFile.content)) {
41-
fileBuffer = formFile.content as Buffer<ArrayBuffer>;
44+
fileBuffer = formFile.content;
4245
} else if (formFile.content instanceof Blob) {
43-
fileBuffer = Buffer.from(
44-
await formFile.content.arrayBuffer(),
45-
) as Buffer<ArrayBuffer>;
46+
fileBuffer = Buffer.from(await formFile.content.arrayBuffer());
4647
} else {
4748
// NodeJS.ReadableStream
4849
fileBuffer = await stream2buffer(
4950
formFile.content as unknown as Stream,
50-
) as Buffer<ArrayBuffer>;
51+
);
5152
}
5253
buffer = Buffer.concat([buffer, fileBuffer]);
5354
}

0 commit comments

Comments
 (0)