cordova-plugin-file覆盖window.File

时间:2018-04-17 17:42:52

标签: cordova cordova-plugins cordova-plugin-file

当我尝试将文件上传到我的服务器时,当我使用<input type="file" />选择文件时,它就像一个魅力,但当我使用cordova-plugin-file时它会发送一个空的(0字节)文件。猜猜是什么?

1 个答案:

答案 0 :(得分:1)

如果您加载new File

cordova-plugin-file不会创建相同的对象。由于window.File覆盖了cordova-plugin-file

所以我不得不做一个小技巧(感谢https://stackoverflow.com/a/29390393/178575):

const getFile = dirEntry =>
  new Promise((resolve, reject) => {
    dirEntry.file(file => {
      // window.File is modified by cordova, so we need this trick
      const reader = new FileReader()
      reader.onloadend = function() {
        const blob = new Blob([new Uint8Array(this.result)], {
          type: file.type
        })
        blob.name = file.name
        blob.lastModifiedDate = new Date(file.lastModifiedDate)
        resolve(blob)
      }
      reader.readAsArrayBuffer(file)
    })
})