请教 blob 临时地址url(如:blob:http://192.168.1.14:3200/4aa3%E2%80%A6%E2%80%A6) 转成 blob 对象或 file 文件(是视频非图片)!尝试许久无果,求经验解答
3条回答 默认 最新
关注 @Liz 下午好🌅🌅🌅
本答案参考通义千问Blob URL 是一个指向浏览器本地缓存的二进制数据的链接,它并不是可以直接转换为 Blob 对象或 File 对象的。但是,你可以通过以下步骤将 Blob URL 转换为实际的文件或 Blob 对象:
-
使用 fetch 或 XMLHttpRequest 获取 Blob 数据:
- 使用
fetch
API 可以更简洁地获取数据:
fetch('blob:http://192.168.1.14:3200/4aa3%E2%80%A6%E2%80%A6') .then(response => response.blob()) .then(blob => { // 现在你有了一个 Blob 对象 // 可以将其转化为File对象或使用其他操作 });
- 如果你使用的是旧版本的浏览器,可以使用 XMLHttpRequest:
var xhr = new XMLHttpRequest(); xhr.open('GET', 'blob:http://192.168.1.14:3200/4aa3%E2%80%A6%E2%80%A6', true); xhr.responseType = 'blob'; xhr.onload = function() { if (xhr.status === 200) { var blob = xhr.response; // ...处理blob对象 } }; xhr.send();
- 使用
-
将 Blob 对象转换为 File 对象:
- 使用
FileReader
对象:
var reader = new FileReader(); reader.readAsArrayBuffer(blob); reader.onload = function() { var file = new File([reader.result], 'filename.mp4', {type: 'video/mp4'}); // ...处理file对象 };
- 使用
-
保存到本地或上传:
- 保存到本地:
saveAs(file, 'filename.mp4');
- 上传到服务器:
var formData = new FormData(); formData.append('file', file); // 发送POST请求...
注意:Blob URL 的有效期可能很短,如果需要长期保存,最好在服务器端创建一个持久的存储位置,并返回该位置的 URL。
解决 无用评论 打赏 举报-
悬赏问题
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计