首页 > 解决方案 > 是否有一种简单易用的方法来使用 fetch 通过 api 接收文件

问题描述

在我正在开发的 Web 应用程序中,用户可以下载文件,这些文件存储在 ftp 服务器上。所以这个想法是

  1. 用户触发文件下载
  2. react-redux 前端对 python 后端服务器进行 fetch api 调用,
  3. 后端服务器从 ftp 服务器中选择正确的文件
  4. 它加载该文件
  5. 它使用烧瓶 send_file 将其发回
  6. react-redux 前端接收文件
  7. 该文件由用户下载

我已经对如何执行第 7 步进行了相当多的搜索,但这篇文章的答案是“浏览器技术目前不支持直接从 Ajax 请求下载文件。” 我不认为这是一个专门的 Ajax 请求(是吗?),但我没有找到任何解决我的问题的答案,所以我假设浏览器技术可能是没有简单答案的原因。或者有吗?

我希望能找到类似的东西

fetch(window.location.origin + '/api/get-file', {
    method: "POST",
    body: JSON.stringify(action.docData),
    headers: {
    Accept': 'application/file',
    Content-Type': 'application/file'
    },
    })

但不是。那么,有没有一种简单的方法可以“预期”您的 api 请求将返回您需要处理的文件?有没有办法避免跳过链接答案所指的所有障碍?

标签: javascriptreactjsreact-reduxfetch-api

解决方案


推荐阅读