javascript - 使用 File API polyfill 读取数据 URL

标签 javascript html fileapi polyfills

我正在尝试使用文件 API 库 ( https://github.com/mailru/FileAPI ) 作为不支持文件 API 的浏览器的回退,以便将文件作为数据 URL 读取并将其传递给另一个函数。

我有这个代码:

function handleFileSelect(event) {
    // If supported, use native File API.
    if(window.FileReader != null) {
        console.log('Using native File API.'); // !
        var files = event.target.files;
        for(var i = 0, f; f = files[i]; i++) {
            var reader = new FileReader();
            reader.onload = function(event) {
                insertImage(event.target.result);
            };
            reader.readAsDataURL(f);
         }
    }
// Otherwise, use fallback polyfill for browsers not supporting native API.
else {
    console.log('Using polyfill for File API.'); // !
    var file = FileAPI.getFiles(event.target);
    FileAPI.readAsDataURL(file, function(evt) {
        console.log(evt);
    });
  }
}

但是,console.log(evt) 返回一个报告错误的对象:“filreader_not_support_DataURL”。

我是不是在使用 File API polyfill 时做错了什么,或者我是否必须使用 shim 或其他 polyfill 才能使数据 URL 正常工作?

谢谢。

-- 山姆。

最佳答案

功能通过 flash 实现 - 感谢 FileAPI 插件的作者。

// bind to your upload container
var el = document.getElementById('uploadElementId');
FileAPI.event.on(el, 'change', function (evt/**Event*/) {
    var files = FileAPI.getFiles(evt);
    // get Data URL for the first file
    FileAPI.readAsDataURL(files[0], function (dataUrlObject) {
        if (dataUrlObject.type == 'load') {
            // Success                    
            var dataUrl = dataUrlObject.result;
        }
    });
});

整个线程在这里:https://github.com/mailru/FileAPI/issues/153

关于javascript - 使用 File API polyfill 读取数据 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16712123/

相关文章:

javascript - IE和本地文件读取

html - 在 jsFiddle 中工作的 FileReader API,但不是来自本地文件

javascript - JS : Uncaught SyntaxError: Unexpected token '<' in browser console when using <? php echo json_encode($_SESSION['

javascript - 在javascript中摆脱对象的所有属性的最快方法是什么?

javascript - 以 Angular 6 绑定(bind)来自服务的图像

javascript - 使浏览器在单击后退按钮时忽略 URL 哈希

html - 如何让这个 div 换行

html - 与停用 CSS 中的悬停效果相关的问题

javascript - JS计算完成后,下次显示NAN值

javascript - Blob 的 DataUri 与 Base64 字符串 DataUri