reactjs – 如何使用axios下载文件

我正在使用axios来获取基本的http请求,比如get和post,它运行良好.现在我需要能够下载excel文件.这可能与axios有关.如果是这样,有人有一些示例代码吗?如果不是我还能在反应应用程序中使用什么来做同样的事情?
最佳答案
当响应带有可下载文件时,响应头将是类似的

Content-Disposition: "attachment;filename=report.xls"
Content-Type: "application/octet-stream" // or Content-type: "application/vnd.ms-excel"

你可以做的是创建一个单独的组件,它将包含一个隐藏的iframe.

  import * as React from 'react';

  var MyIframe = React.createClass({

     render: function() {
         return (
           <div style={{display: 'none'}}>
               <iframe src={this.props.iframeSrc} />
           </div>
         );
     }
  });

现在,您可以将可下载文件的url作为prop传递给此组件,因此当此组件将接收prop时,它将重新呈现并将下载文件.

编辑:您也可以使用react-file-download模块.

const FileDownload = require('react-file-download');

Axios.get(`http://localhost/downloadFile`)
   .then((response) => {
        FileDownload(response.data, 'report.csv');
   });

希望这可以帮助 :)

转载注明原文:reactjs – 如何使用axios下载文件 - 代码日志