【问题标题】:html 5 + webkitRequestFileSystem: save image file from userhtml 5 + webkitRequestFileSystem:保存用户的图像文件
【发布时间】:2015-09-06 21:42:06
【问题描述】:

使用 webkitRequestFileSystem,我想做一些非常简单的事情:从用户那里获取一个文件,将其保存到浏览器本地文件系统中,并在以后使用它(例如作为图像 src 等)

我阅读了有关 webkitRequestFileSystem 的信息,但没有找到任何有关从用户那里克隆文件的信息(也许我错过了?)。

所以我尝试了一个简单的读取、获取文件、写入的实现,并且一切似乎都有效(调用成功回调),我可以看到带有 chrome 扩展名的文件(HTML5 文件系统资源管理器),但是当我尝试使用图像 url 它显示一个损坏的图像图标。

这是用于克隆文件的 sn-p(有点,必须清理一下):

var src_file = .... <-- got it from user

filesystem.root.getFile("output.png", {create: true}, function(dest_file)
{
            var reader = new FileReader();

            reader.onerror = function() {alert("ERROR")};
            reader.onload = function(e)
            {
                read_buffer = e.target;
                dest_file.createWriter(function(fileWriter) {

                    var blob = new Blob([read_buffer.result], {type: 'application/octet-stream'});  // <-- also tried "image/png" etc..
                    fileWriter.onerror = function() {alert("ERROR2")};
                    fileWriter.onwriteend = function(writer)
                    {
                        alert("SUCCESS!");
                    };
                    fileWriter.write(blob);

                },  function() {alert("ERROR3")});

            };

            reader.readAsBinaryString(src_file);
});

PS 我在 localhost 上工作,这是个问题吗?

谢谢!

【问题讨论】:

    标签: javascript html filesystem-browser


    【解决方案1】:

    回答我自己:应该使用 readAsArrayBuffer() 而不是 readAsBinaryString()...那真是浪费时间:/

    【讨论】:

    • 至少你抓住了它!
    猜你喜欢
    • 2013-12-19
    • 2016-08-12
    • 2015-10-29
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 2011-04-08
    • 2012-02-22
    • 1970-01-01
    相关资源
    最近更新 更多