节点快递服务器下载文件?"/>
如何从节点快递服务器下载文件?
我的服务器(Node.js + Express)上有一个文件。我需要将文件从服务器下载到用户的计算机。在React应用程序中,我调用了将下载文件的函数:
downloadFileFromServer(file) { // file -- name of file
fetch(`${Config.baseUrl}/download-file/${this.props.params.idEvent}/${file}`, {
method: 'GET'
})
.then((response) => {
if (response.status >= 400) {
throw new Error('Bad response from server');
}
return response;
});
}
在后端,我有这条路线:
app.route('/download-file/:idEvent/:fileName')
.get((req, res) => {
const id = `id${req.params.idEvent}`;
const dir = `${Config.basePath}/${id}/${req.params.fileName}`;
res.download(dir); // dir -- path to server's files. (something like this: 'var/www/... path to directory ...')
});
结果我没有任何结果。什么都没发生,控制台(前端,后端)为空,没有错误。
为什么我不能下载文件?如何解决?
回答如下:您必须使用以下命令在反应中安装“ js-file-download”库
npm install --save js-file-download
然后,在react文件中,代码如下:
import download from 'js-file-download';
downloadFile = () => {
axios.get("localhost:3030/getfile")
.then(resp => {
download(resp.data, fileName);
});
}
服务器端的代码如下:
router.get("/getfile", (req, res) => {
FileLocation ="public/FILE.pdf"
file="File.pdf"
res.download(fileLocation, file, (err) => {
if (err) console.log(err);
});
});
我对这个答案的参考在此link中。
这对我有用。我希望对您有用。
更多推荐
如何从节点快递服务器下载文件?
发布评论