小编JKa*_*fer的帖子

如何从字符串创建文件并通过 FormData 发送

我有一个字符串形式的svg 。我想将该字符串转换为文件并将其发送FormData到另一个 API。

我找到了一种工作方式,但包括在本地创建一个文件(使用fs),然后readStream从刚刚创建的文件创建一个。处理许多文件的速度非常慢,并且大多数时候都会导致超时。

fs.writeFile('file.svg', svgString, async () => {
            const fr = fs.createReadStream('file.svg');
            const formData = new FormData();
            formData.append('media', fr);

            const response = await Axios.post(route, formData, {...}
            });
        });
Run Code Online (Sandbox Code Playgroud)

这是我使用 Buffer 和 Readable 的(失败的)方法:

// Create readable from svg string
const b = Buffer.from(svgString, 'utf-8');
const r = Readable.from(b);

const formData = new FormData();
formData.append('media', fr);

const response = await Axios.post(route, formData, {...});
Run Code Online (Sandbox Code Playgroud)

此方法给出的结果与第一种方法不同。然后我从外部 API 收到错误。

问题是如何获得与第一种方法相同的结果,而不将本地文件写入磁盘。

提前致谢!

buffer fs node.js node-streams

3
推荐指数
1
解决办法
3034
查看次数

标签 统计

buffer ×1

fs ×1

node-streams ×1

node.js ×1