1

我正在运行一个 C# 应用程序。这个 C# 应用程序嵌入了一个 Chromium(build 18)浏览器,它指向一个在 http 上运行的远程站点。这是一个 Backbone/Require 站点,所以它是 99% 的 JavaScript。

除了 FileReader 之外,此站点上的所有内容都与 Chrome 内部的工作方式完全相同。无论我们尝试上传什么,我们都会到达 NOT_READABLE_ERR。

我知道总是会触发 NOT_READABLE_ERR 的 build 14 错误。这已在版本 18 中得到纠正(据称?)。

我也尝试启用 --file-allow-file-access 标志。那没有帮助。

相关JS代码如下。抱歉,我无权访问 C# 代码,但如果有任何我可能陷入的陷阱,我可以在那里提出更改建议。我怀疑 C# 没问题,因为http://www.google.com/imghp在我们的嵌入式 Chromium 浏览器中运行良好。

一些注意事项: 文件未锁定。我们尝试了多种文件和文件类型。C# 应用程序在本地运行(Windows 客户端)并嵌入了指向 http 站点的 Chromium 浏览器。

// called from <input type='file'> change event
fileSelected: function(e) {
    this._processFile(e.target.files[0]);
},

_processFile: function(filehandle) {
    var reader = new FileReader();

    reader.onload = function(evt) {
        console.log('done loading', evt);
    };

    reader.onprogress = function(evt) {
        console.log("on progress!");
        if(evt.lengthComputable) {
            console.log("loaded: " + evt.loaded);
            console.log("total: " + evt.total);
        }
    };

    reader.onloadstart = function(evt) {
        console.log("on load start!");
    };

    reader.onerror = function(evt) {
        switch(evt.target.error.code) {
            case evt.target.error.NOT_FOUND_ERR:
                console.log('File Not Found!');
                break;
            case evt.target.error.NOT_READABLE_ERR:  // we always arrive here, no matter what type of file.  img, pdf, etc.  files are not locked.
                console.log('File is not readable');
                break;
            case evt.target.error.ABORT_ERR:
                break; // noop
            default:
                console.log('An error occurred reading this file.');
        };
    };

    reader.onabort = function() {
        console.log("upload aborted.");
    };

    reader.readAsDataURL(filehandle);
}
4

0 回答 0