首页 > 解决方案 > 使用 axios 获取文件(内容和文件名)

问题描述

有一个提供可下载文件的 API 端点 - 当直接从浏览器访问 url 时 - 文件会自动保存。但是,我想从我的应用程序中定位给定的端点,并将文件名和内容获取到我的应用程序的 redux 商店中的减速器。

我正在使用axios所有 API 请求。在这种情况下,我试图这样做:

axios({
    url: API_ENDPOINT_URL,
    method: "GET",
    headers,
}).then((response) => {
    // do some stuff 
    console.log("response ", response)
})

在此设置中,response仅包含data,没有文件名。如何解决这个问题?

标签: javascriptecmascript-6axios

解决方案


您可以在 axios 中添加可以是流或 blob 的响应类型(取决于文件类型)

axios({
  method:'get',
  url:'endpoint_url',
  responseType:'stream'
})
  .then(function (response) {
    response.data.pipe(fs.createWriteStream('file_name.jpg'))
  })

这直接来自 axios 文档。让我知道您是否需要其他东西


推荐阅读