将文件发送到客户端进行下载

时间:2017-02-20 05:35:54

标签: javascript file reactjs express download

您好我正在尝试将文件从我的快递服务器发送到我的前端,以允许用户在点击按钮时下载它。我已经在后端创建了一个通过字节数组发送的路由,但我对如何允许用户下载它没有任何想法。

我在这里尝试做的是允许一个用户将文件直接上传到我的服务器然后另一个用户来到并下载在之前日期上传的文件。

我已经让上传部分正常工作了。现在我只是缺少下载部分的方向。

这是我的快速路线被击中。

const path = require('path');

const getFile = (req, res) => {
  const filePath = path.join(__dirname, '../../../', req.query.file);
  console.log(filePath);
  res.download(filePath);
};

这是我的onEnd函数的onClick

download(file) {
    axios.get('/api/download/getFile', {
      params: {
        file,
      },
    })
    .then(data =>{
      console.log(data);
      window.open(data.data);
    })
  }

这是我点击按钮时不断出现的错误

  

无法打开包含无效网址的窗口

对我有意义,因为我没有得到一个网址我得到一个字节数组

1 个答案:

答案 0 :(得分:0)

试试这个 -

window.open('/api/download/getFile?file=yourfile');