我使用以下方法通过FileReader API处理文件上传,而且我似乎没有在Firefox 31.0中获取读者对象:
var processFileUpload = function(event) {
var fileInput = event.target;
var file = fileInput.files[0];
if (typeof file !== 'undefined' && file !== null && file.hasOwnProperty('size') && file.size > 0) {
var reader = new FileReader();
reader.onload = function(e) {
file_url = reader.result;
saveFile(file_url, file.name, file.type, file_category);
};
reader.readAsDataURL(file);
}
};
在萤火虫中,我有两行断点:
reader.readAsDataURL(file);
和
file_url = reader.result;
当我选择一个文件时,它会在第一个断点处按预期中断: reader.readAsDataURL(file);
要达到这一点,必须已经通过 var reader = new FileReader();
此时相关变量的值为:
file = { size: 21720, type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", name: "Example.docx", path: "", lastModifiedDate: Date 2014-08-14T09:29:49.000Z, mozFullPath: "" }
reader = undefined
file_url = reader.result; 上的断点永远不会被击中。
为什么读者未定义?为什么它的onload被调用?我哪里错了?