我无法让 FileReader 在 iOS 8 中工作。以下演示说明了这一点(iOS 的 jsFiddle 链接 - http://jsfiddle.net/gys6rubg/1/):
var file = document.getElementById('file-input');
file.addEventListener('change', function(event) {
var file = this.files[0];
if(!file) {
alert('No file');
return;
}
var reader = new FileReader();
var timeout = setTimeout(function() {
alert('FileReader not functioning');
}, 500);
reader.onload = function(event) {
clearTimeout(timeout);
alert('Base64 length - ' + event.target.result.length);
};
reader.readAsDataURL(file);
});
<form>
<input id="file-input" type="file" />
</form>
我在 iPhone 上使用 Safari 时遇到了同样的问题(但在 iPhone 版 Chrome 上不存在这个问题!)。
如果添加错误事件处理程序:
reader.onerror = function (e) {
alert("error " + e.target.error.code + " \n\niPhone iOS8 Permissions Error.");
}
您将收到错误代码 4。 根据 HTMLGoodies - Responding to HTML5 FileReader Events
错误代码 4 = NOT_READABLE_ERR:由于在获取文件后权限发生更改,因此无法读取该文件 - 可能是因为该文件已被另一个程序锁定。
关于javascript - FileReader 无法在 iOS 8 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999083/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |