reactjs - 从 Firebase 存储下载文件
问题描述
我有一个功能,当点击时从 Firebase 存储下载文件。我已经实现了firebase文档v8中的功能。我还应用了 cors 策略以允许下载,但问题是该文件仍未被下载,并且我没有收到错误消息。请帮助解决这个问题。下面是我的下载功能。
const handleDownloadFile = async file => {
try {
const url = file.downloadURL;
console.log(file);
const xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = event => {
const blob = xhr.response;
};
xhr.open('GET', url);
xhr.send();
} catch (error) {
console.log(error.message);
}
};
该函数接受文件的详细信息。下面是一个示例对象
{
name: 'Ndov network LOGO - 400.png',
downloadURL: 'https://firebasestorage.googleapis.com/v0/b/tki…=media&token=2680cc-4043-4676-992a-7e64fe8342f2',
uuid: '1b1c0a4b-80a5-42d4-a698-719a26e3f281'
}
请帮助我了解为什么我没有收到任何错误并且仍然下载,无法正常工作。
解决方案
在来自 API 的 url 上下载文件的最简单方法是
window.open(url,'_blank');
或者您可以使用一些库来下载 blob 格式的文件,例如 https://www.npmjs.com/package/file-saver
推荐阅读
- python - CSV 到 SQL Server:批量导入噩梦(T-SQL 和/或 Pandas)
- angular-material-table - 有没有办法根据屏幕尺寸在 Angular Mat 表中应用“displayColumns”
- python-3.x - Python 3.7 操作系统模块“Windows 找不到 image.png”
- cs50 - 在 Caesar,Pset2 上遇到“分段错误”
- python - Django Web 应用程序中的 NoReverseMatch
- r - R:按条件选择数据框的元素
- android - 当我点击底部导航栏“收藏夹”时,删除了 ListTile 的尾随图标属性
- ios - Obj-C - 将 TableViewCell 从一个 TableView 拖放到另一个 TableView?
- forms - 如何使我的表单字段异步验证?
- python-3.x - Django 验证器