Skip to content

Commit e85b239

Browse files
committed
Fix InputFile helpers to avoid toString()
toString() can change the actual data and corrupt the upload
1 parent 3763b01 commit e85b239

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

templates/node/lib/inputFile.js.twig

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
const { Readable } = require('stream');
22
const fs = require('fs');
3-
const { promisify } = require('util');
43

54
class InputFile {
65
stream; // Content of file, readable stream
@@ -14,16 +13,15 @@ class InputFile {
1413
};
1514

1615
static fromBuffer = (buffer, filename) => {
17-
const stream = Readable.from(buffer.toString());
16+
const stream = Readable.from(buffer);
1817
const size = Buffer.byteLength(buffer);
1918
return new InputFile(stream, filename, size);
2019
};
2120

22-
static fromBlob = (blob, filename) => {
23-
const buffer = blob.arrayBuffer();
24-
const stream = Readable.from(buffer.toString());
25-
const size = Buffer.byteLength(buffer);
26-
return new InputFile(stream, filename);
21+
static fromBlob = async (blob, filename) => {
22+
const arrayBuffer = await blob.arrayBuffer();
23+
const buffer = Buffer.from(arrayBuffer);
24+
return InputFile.fromBuffer(buffer, filename);
2725
};
2826

2927
static fromStream = (stream, filename, size) => {
@@ -32,7 +30,7 @@ class InputFile {
3230

3331
static fromPlainText = (content, filename) => {
3432
const buffer = Buffer.from(content, "utf-8");
35-
const stream = Readable.from(buffer.toString());
33+
const stream = Readable.from(buffer);
3634
const size = Buffer.byteLength(buffer);
3735
return new InputFile(stream, filename, size);
3836
};

0 commit comments

Comments
 (0)