如何使用chrome filesystem api从chrome app中的url下载图像?

时间:2016-03-23 13:00:08

标签: javascript angularjs google-chrome-app

我有一个有图像的网址。我想使用chrome api下载该图像。我正在开发一个Chrome应用程序而不是扩展程序。 谁能告诉我哪里出错了?

我的代码:

service('fileService', function($window){
    this.saveUserInfo = function(theFilePath) {
        // filepath is the url passed from controller{
        // Get the directory entry stored (if any).
        var fileUrl = "";
        var config = {
            type: 'saveFile',
            suggestedName: 'TheBee.png',
            accepts:[{extensions: ['png', 'jpg', 'jpeg']}]
        };

        chrome.fileSystem.chooseEntry(config, function(writableEntry) {

            chrome.fileSystem.getWritableEntry(writableEntry, function(entry1) {

                entry1.getFile(theFilePath, {create:true}, function(entry2) {

                    entry2.createWriter(function(writer) {
                        var blob = new Blob({type: 'image/png'});
                        writer.write(blob);
                    });

                });

            });

        });

    });

});

2 个答案:

答案 0 :(得分:0)

更改

var blob = new Blob({type: 'image/png'});

var blob = new Blob([entry1],{type: 'image/png'});

Blob构造函数接受blob部分:MSDN => Blob(blobParts [,选项])

答案 1 :(得分:0)

你不能在entry1上使用getFile,因为它本身就是一个文件。您需要将config.type更改为“openDirectory”

您还需要添加一个空数组作为blob构造函数的第一个输入。