javascript - 在 react-native 中使用 Blob 下载文件
问题描述
从 React-nativev0.54
和 ExpoSDK v26
开始,现在支持 Blob。
我正在尝试将 URL 上可用的文件下载到我的手机(如果可能,在我Downloads
的 Android 目录中)
我现在能找到的只是现有的解决方案react-native-fetch-blob
,似乎不再需要了。
如果有人可以提供一个关于如何开始实现此功能的简短示例Expo snack
解决方案
XMLHttpRequest
这对我有用。使用 XMLHttpRequest 获取文件并以 blob 形式获取响应。
function downloadFile(url) {
return new Promise((resolve, reject) => {
var xhr = new XMLHttpRequest();
xhr.onerror = reject;
xhr.onreadystatechange = () => {
if (xhr.readyState === 4) {
resolve(xhr.response);
}
};
xhr.open('GET', url);
xhr.responseType = 'blob'; // convert type
xhr.send();
})
}
您现在可以使用以下命令下载文件
downloadFile(YOUR_FILE_URL)
.then((resolve, reject)=>{console.log((resolve)})
推荐阅读
- php - 如何使自定义字段反序列化(在rest api中获取高级自定义字段)?
- sql - 对前几行的列中的值求和,属于特定时间段,并共享一个唯一标识符
- c# - 有没有办法在通知中心查询所有被 PNS 标记为非活动的设备?
- java - 如何在 google kubernetes 中访问 postgresql pod/service
- scala - 基于用户输入的过滤条件 Spark Scala
- python - 转置后找不到列名
- c# - 代码优先多对多表不使用提供的 id 列
- c++ - 使用命名空间c ++时变量不明确
- reactjs - 单元测试连接组件时如何修复错误“在上下文连接(App)中找不到存储”?
- c# - 如何停止 PdfReader.ComputeUserPassword() 返回 null?(AES256 加密 PDF)