【问题标题】:File object transferred using Socket.IO becomes 'ArrayBuffer'?使用 Socket.IO 传输的文件对象变为“ArrayBuffer”?
【发布时间】:2017-08-13 17:31:01
【问题描述】:

当我使用带有 Typescript 的 Socket.IO 传输文件对象 (File interface) 时,该文件在接收端变为 ArrayBuffer

有没有办法将ArrayBuffer 转换回File,或者我不应该使用套接字 io 发送整个文件对象(分别发送名称、数据、mime 类型)?

【问题讨论】:

  • 文件只是一个特殊的Blob,ArrayBuffer转Blob很简单。

标签: javascript typescript socket.io


【解决方案1】:

ArrayBuffer 传递给BlobFile 构造函数

const file = new Blob([ab])

const file = new File([ab], "filename.ext", {type:/* valid MIME type */})

【讨论】:

  • 我试过了,var file : File = new Blob(arraybuffer); 但是,我得到了Blob 类缺少lastModifiedDate 所需的lastModifiedDate 的错误,因此无法转换。如果我使用类型转换强制它,我会收到错误:core.es5.js:1084 ERROR TypeError: Failed to construct 'Blob': Iterator getter is not callable.
  • 错过了更新,试试第二行,谢谢!
  • 如果您的应用程序需要lastModifiedDate,您可以在File()构造函数的第三个参数处的对象中设置该属性
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2021-07-20
  • 2020-09-08
  • 1970-01-01
相关资源
最近更新 更多