首页 > 解决方案 > 如何将文件对象下载给用户?

问题描述

在一条路线内:

app.get('some-route', async (req, res) => {
    // ...
}

我有一个文件对象 ( file),它看起来像:

在此处输入图像描述

现在我想下载这个。

目前我正在做:

app.get('some-route', async (req, res) => {
    const file = //...
    res.write(file.data.buffer,"binary");
    res.end();
}

这有效,但给出了一个没有扩展名的文件download(通过手动添加扩展名,我可以检查它是否有效)。

如何设置文件的名称和扩展名?(或者有完全不同的更好的方法来下载这样的文件吗?)

标签: javascriptnode.jsexpress

解决方案


您可以使用 express 模块multer。要将文件发送到服务器,您需要将其包装在 FormData

var fd = new FormData()
fd.append("file", file)

fetch("/express-server", { method: "POST", body: fd })

要在服务器上接收文件,您必须按照指南multer


推荐阅读