【问题标题】:Javascript File to BlobJavascript 文件到 Blob
【发布时间】:2019-01-09 19:04:56
【问题描述】:

我正在使用 Cordova Media 将音频录制到一个空文件中。

要上传它,我需要在文件上有内容类型。

我正在尝试将文件转换为 Blob,以便设置内容类型,但是我正在努力将文件转换为 Blob

state.cordova.localDirectory.getFile(filename,{create:true, exclusive:false},
    f => {
      const options = {
        SampleRate: 16000,
        NumberOfChannels: 1,
      }
      media = new window.Media(f.nativeURL,() =>
        f.file(file => {
          const blob = new Blob(file,{type: 'audio/m4u'}) <--  Trying to convert file into a blob here
          blob.lastModifiedDate = new Date()
          blob.name = filename
          console.log(blob)

          upload(blob,'audio/m4u')
            .then(data=> {console.log(data);store.dispatch(voiceAudioUploaded(sessionId,gameTaskId,data))}, err=> console.log(err))
        }
          , err => console.log('err',err) ))
      media.startRecordWithCompression(options)
    })

错误是`

未能构造“Blob”:迭代器 getter 不可调用。

`

【问题讨论】:

  • Blob 需要一个可迭代的(例如数组)。我不知道file 是什么,但它似乎不可迭代。请注意,如果它是 Web API window.File 中的 File,那么它已经是 Blob。但是如果你真的想把它变成一个 Blob,我不知道是什么原因,那么你会做new Blob([file], options)
  • 是的,它是一个window.File,设置内容类型
  • 如果有其他设置内容类型的方法,请告诉我
  • 为什么需要设置content-type?
  • 为什么这个上传功能需要它...无论如何,不​​要创建一个Blob,而是从这个文件创建一个新文件:file = new File([file], file.name, {type: 'application/foo'})

标签: javascript file blob


【解决方案1】:

试试

const blob = new Blob([file],{type: 'audio/m4u'})

【讨论】:

    猜你喜欢
    • 2019-10-27
    • 1970-01-01
    • 2013-12-04
    • 2014-06-02
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多