当前位置:首页 > React

react如何下载文件

2026-03-10 17:12:14React

使用 fetchaxios 下载文件

通过 fetchaxios 发送请求获取文件数据,将响应转换为 Blob 对象,并创建下载链接。

示例代码(fetch):

fetch('文件URL')
  .then(response => response.blob())
  .then(blob => {
    const url = window.URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = '文件名.扩展名'; // 设置下载文件名
    document.body.appendChild(a);
    a.click();
    window.URL.revokeObjectURL(url);
    document.body.removeChild(a);
  });

示例代码(axios):

axios.get('文件URL', { responseType: 'blob' })
  .then(response => {
    const url = window.URL.createObjectURL(new Blob([response.data]));
    const a = document.createElement('a');
    a.href = url;
    a.download = '文件名.扩展名';
    document.body.appendChild(a);
    a.click();
    window.URL.revokeObjectURL(url);
    document.body.removeChild(a);
  });

使用 <a> 标签直接下载

适用于无需鉴权的静态文件,直接通过 HTML 标签触发下载。

示例代码:

<a href="文件URL" download="文件名.扩展名">下载文件</a>

处理后端返回的文件流

若后端返回文件流(如 Node.js 的 res.download),确保前端正确解析 Blob 并触发下载。

后端示例(Node.js Express):

app.get('/download', (req, res) => {
  res.download('服务器文件路径', '客户端文件名.扩展名');
});

前端处理:

react如何下载文件

fetch('/download')
  .then(response => response.blob())
  .then(blob => {
    // 同上述 Blob 处理逻辑
  });

注意事项

  • 跨域问题:确保文件 URL 允许跨域请求(CORS 配置)。
  • 鉴权:需鉴权的文件需在请求头中添加 Authorization 等字段。
  • 大文件处理:考虑分块下载或进度提示(如 axiosonDownloadProgress)。

通过以上方法,可根据实际需求选择适合的下载方式。

分享给朋友:

相关文章

vue文件树实现

vue文件树实现

Vue 文件树实现 实现文件树功能通常需要递归组件和动态数据加载。以下是一个基于 Vue 3 的完整实现方案: 数据结构设计 文件树的数据结构通常为嵌套对象数组,每个节点包含以下属性: c…

vue文件下载实现方式

vue文件下载实现方式

vue文件下载实现方式 使用a标签下载 通过创建a标签并设置download属性实现文件下载。适用于已知文件URL或Blob对象的情况。 // 方法1: 直接使用URL const download…

react17如何下载

react17如何下载

下载 React 17 的方法 通过 npm 安装 在项目目录下运行以下命令,使用 npm 安装 React 17 及其依赖: npm install react@17.0.2 reac…

如何配置react的hosts文件

如何配置react的hosts文件

配置 React 项目的 hosts 文件 修改 hosts 文件可以用于本地开发时自定义域名访问 React 应用,以下是具体方法: 修改系统 hosts 文件 在操作系统中找到 hosts 文件…

react如何访问到public内的文件

react如何访问到public内的文件

访问 public 目录文件的常用方法 在 React 项目中,public 目录下的文件可以通过以下方式访问: 直接使用绝对路径 React 会自动将 public 目录作为根路径。例如,…

react如何打开一个静态文件

react如何打开一个静态文件

在React中打开静态文件的方法 React项目中静态文件通常存放在public目录下,可以通过以下方式访问: 将需要打开的静态文件(如PDF、图片等)放入项目的public文件夹中。假设文件名为e…