@Liz 2024-02-29 15:08 采纳率: 16.7%
浏览 24

blob 临时地址url 转 blob 对象或 file 文件

请教 blob 临时地址url(如:blob:http://192.168.1.14:3200/4aa3%E2%80%A6%E2%80%A6) 转成 blob 对象或 file 文件(是视频非图片)!尝试许久无果,求经验解答

  • 写回答

3条回答 默认 最新

  • Kwan的解忧杂货铺 Java领域优质创作者 2024-02-29 15:09
    关注

    @Liz 下午好🌅🌅🌅
    本答案参考通义千问

    Blob URL 是一个指向浏览器本地缓存的二进制数据的链接,它并不是可以直接转换为 Blob 对象或 File 对象的。但是,你可以通过以下步骤将 Blob URL 转换为实际的文件或 Blob 对象:

    1. 使用 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();
      
    2. 将 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对象
      };
      
    3. 保存到本地或上传:

      • 保存到本地:
      saveAs(file, 'filename.mp4');
      
      • 上传到服务器:
      var formData = new FormData();
      formData.append('file', file);
      // 发送POST请求...
      

    注意:Blob URL 的有效期可能很短,如果需要长期保存,最好在服务器端创建一个持久的存储位置,并返回该位置的 URL。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月29日

悬赏问题

  • ¥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和热敏电阻的数字温度计