2016-03-23 1 views
0

У меня есть URL-адрес, который имеет изображение. Я хочу загрузить это изображение с помощью chrome api. Я разрабатываю хром-приложение, а не расширение. Может кто-нибудь, пожалуйста, скажите мне, где я иду не так?Как скачать изображение с URL-адреса в Chrome-приложении с помощью хром-файловой системы api?

Мой код:

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); 
        }); 

       }); 

      }); 

     }); 

    }); 

}); 
+0

Не должен ли конструктор blob принимать 2 аргумента? 'new Blob ([data], {opts})' – Endless

ответ

0

Изменить

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

Для

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

Капля застройщик acceptes двоичных объектов частей: MSDN => Blob (blobParts [, опции])

0

Вы не можете использовать getFile on ent ry1, потому что это файл. Вам нужно будет изменить config.type на «openDirectory»

Вам также необходимо добавить пустой массив в качестве первого ввода в конструктор blob.

+0

Можете ли вы предоставить плункер или что-то еще? Я очень новичок в хром-апи. Было бы очень полезно, если бы вы могли предоставить плункер с одинаковой функциональностью. – guppie