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