You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala.js:如何将Array[Byte]转换为Blob?

Scala.js 中 Array[Byte] 转 Blob 的实现方法

在Scala.js环境下,要把Array[Byte]转换成DOM API需要的Blob类型,核心是借助JavaScript的Uint8Array做中间转换,直接看可运行的实现代码:

import org.scalajs.dom.Blob
import scala.scalajs.js.typedarray.Uint8Array
import scala.scalajs.js

def toBlob(input: Array[Byte]): Blob = {
  // 将Scala原生Array[Byte]转为JS类型化数组Uint8Array
  val uint8Data = new Uint8Array(input)
  // 传入Blob构造函数,可自定义MIME类型(按需修改)
  new Blob(js.Array(uint8Data), js.Dynamic.literal(`type` = "application/octet-stream"))
}

关键说明:

  • Scala.js的Array[Byte]可以直接被Uint8Array构造函数接收,二者底层二进制表示完全兼容。
  • Blob构造函数要求第一个参数是包含二进制数据对象的数组,所以需要把Uint8Array包装进JS数组(js.Array(...))。
  • 第二个参数是可选配置,type字段用来指定Blob的MIME类型,比如处理图片可改成image/png,纯文本用text/plain;如果不需要指定类型,可简化代码:
    new Blob(js.Array(new Uint8Array(input)))
    

内容的提问来源于stack exchange,提问作者R A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:07:13