我的FileReader对象可以完美地上传图像。我正在跟踪onload
以及其他事件,这些事件都在我上传图片时发生:
fileReader = new FileReader();
fileReader.onloadstart = (e) => {
window.alert('fileReader onloadstart');
window.alert(e);
};
// ... and the same for onprogress, onabort, onerror, then finally:
fileReader.onload = (e) => {
window.alert('arrived to fileReader.onload!');
// ...
};
我添加了cordova-plugin-media-capture
来捕获音频。现在,我需要使用现有的fileReader.onload
回调函数将其上传等。
但是无论我做什么,我都无法得到fileReader.readAsDataURL
的回应。下面是我的this answer改编而成的关于类似问题的代码,但无法解决。
fileReader
事件均未触发,甚至没有错误。 fileReader.readAsDataURL
功能可用,但是调用它时,屏幕短暂变成白色,然后回到以前的页面,好像我什么都没做。 fileReader
上的任何方法都不会显示其警报。
navigator.device.capture.captureAudio((files) => {
const file = files[0];
newFile = new File(
file.name,
file.localURL,
file.type,
file.lastModifiedDate,
file.size);
window.alert(newFile);
// --> [Object object]
window.alert(JSON.stringify(newFile));
// --> An object with name, localURL etc. See image.
window.alert(fileReader.readAsDataURL);
// --> function readAsDataURL() { [native code] }
fileReader.readAsDataURL(newFile); // nothing at all
})
字符串化的newFile
对象是:
我尝试处理文件captureAudio
的方式不同:
resolveLocalFileSystemURL
:https://ourcodeworld.com/articles/read/80/how-to-convert-a-image-from-the-device-to-base64-with-javascript-in-cordova fileSystem.root.getFile
,如https://groups.google.com/forum/#!msg/phonegap/uX_aDRKp72I/ZUbt0ThWVQkJ 但是每一次相同的事情:当我到达readAsDataURL
时,什么也没有发生。怎么了?
编辑:我忘了提到一些事情: