javascript - 发送文件给客户端下载

标签 javascript file reactjs express download

您好,我正在尝试将文件从我的 express 服务器发送到我的前端,以允许用户在单击按钮时下载它。我已经在后端创建了一条通过字节数组发送的路由,但我对如何允许用户下载它一无所知。

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

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

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

const path = require('path');

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

这是我的前端函数的 onClick

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

这是我单击按钮时不断收到的错误

Unable to open a window with invalid URL

对我来说有意义,因为我没有得到网址,而是得到了一个字节数组

最佳答案

试试这个 -

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

关于javascript - 发送文件给客户端下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42337191/

相关文章:

javascript - 获取单击元素相对于整个文档的索引

javascript - 防止 Internet Explorer 11 中的过度滚动

javascript - 从数组中随机选取一个数组元素

python - 覆盖文件的一部分会导致空字符串 Python 3

javascript - Redux-saga如何向saga内部请求传递参数

javascript - 如何删除括号和括号内的内容?

Java file.exists() 找不到 XML 文件

java - 序列化对象文件输出为空

reactjs - 在另一个展示组件中包含一个展示组件是一种反模式吗?

javascript - 为什么不使用 splice with spread operator 从 react 中的数组中删除项目?