OGeek|极客世界-中国程序员成长平台

标题: javascript - FileReader 无法在 iOS 8 上运行 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 09:15
标题: javascript - FileReader 无法在 iOS 8 上运行

我无法让 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>


Best Answer-推荐答案


我在 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/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4