如何从 NodeJS 服务器下载 React 中的文件?(获取文件损坏)

贡萨02

我希望能够将带有 nodejs 的 pdf 文件发送到前端。但是当我这样做时,出现错误并且无法打开文件。这是错误(错误翻译:加载PDF文档时发生错误):在此处输入图片说明

我认为一切都很好,但仍然没有工作。

这是 nodeJS 代码:

routerTrainer.get("/download-training", verifyJWT, async (req, res) => {

  const { training_id } = req.headers;

  let training = await Training.findOne({
    where: { id: training_id },
  });

  if (training) {
   const path = "/home/gonsa02/Disk/Projects/";
   const dirname = "uploads/trainings/";
   res.download(`${path}${dirname}${training.file_id}`);
  }
});

这是 React 前端代码:

const downloadTraining = async (id) => {
    const fileReader = new FileReader();
    const JWT = new ClassJWT();
    const axiosReq = axios.create();
    await JWT.checkJWT();
    axiosReq
      .get(`${serverPath}/download-training`, {
        headers: {
          training_id: id,
          token: JWT.getToken(),
          responseType: "blob",
        },
      })
      .then((res) => {
        console.log(res);
        fileReader.readAsDataURL(new Blob([res.data]));
      })
      .catch((err) => console.log(err));

    fileReader.addEventListener("loadend", () => {
      const blobString = fileReader.result;
      const link = document.createElement("a");
      link.href = blobString;
      link.setAttribute("download", "file.pdf");
      document.body.appendChild(link);
      link.click();
    });
  };

不要担心所有像 verifyJWT 或 ClassJWT 这样的 JWT,这是 json web 令牌的实现,它可以正常工作。

如果有人知道如何修复它,请告诉我。

yuhengshen

也许你可以试试这个

fetch("filepath", {
  headers: headers
})
  .then(res => res.blob())
  .then(blob => {
    const link = document.createElement("a");
    link.href = URL.createObjectURL(blob);
    link.setAttribute("download", "file.pdf");
    document.body.appendChild(link);
    link.click();
  })

我不测试它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在React中如何从服务器下载文件?

如何使用react保存从服务器下载的文件?

从NodeJS中的服务器下载文件

NodeJS:如何获取服务器的端口?

NodeJS服务器写入响应并开始文件下载

angularjs nodejs从apache http服务器下载文件

Nodejs:无法从 sftp 服务器下载文件

如何从服务器下载python中的csv文件?

如何在Swift中从服务器下载zip文件?

如何在React中显示以文件形式下载并保存在服务器上的文件夹中且文件路径存储在数据库中的图像?

React:写入json文件或导出/下载[无服务器]

使用 react native 在服务器上下载文件

Spring + Angular-如何下载服务器生成的文件

如何从javascript的服务器响应中下载XLSX文件?

如何从blazor服务器端下载文件

如何在Windows服务器上下载文件?

如何使用SSH从服务器下载文件?

如何使用Golang从ftp服务器下载文件

如何下载FTP服务器的最早文件?

如何通过javascript从tomcat服务器下载文件?

如何从Sharepoint服务器下载Excel文件?

如何从Blazor服务器端下载内存文件

如何通过SSH服务器下载文件?

如何使用WinSCP从FTP服务器下载特定文件?

如何从FTP服务器下载文件,然后在下载完成后自动从服务器删除文件?

如何从nodeJS API服务器获取图像反应

如何使用React读取本地服务器JSON文件?

如何在nodejs中阻止服务器终止?

如何在 Kotlin 中从服务器异步下载?