Преобразовать URI данных с помощью BLOB-объекта скриптов Google Apps - PullRequest
1 голос
/ 11 мая 2019

Я пытаюсь загрузить и сохранить изображение из URI данных в Google Apps Script.Все работает независимо от установленного типа файла.

Я перепробовал все варианты newBlob согласно документации скрипта Apps.

function doUpload(dataURI) {

var folder = DriveApp.getFolderById("xxxxxxxxxxxxxxxxxxxxxx");
var type = (dataURI.split(";")[0]).replace('data:','');
var imageUpload = Utilities.base64Decode(dataURI.split(",")[1]);
var blob = Utilities.newBlob(imageUpload, type, "nameOfImage");
folder.createFile(blob);

return true;
}

1 Ответ

0 голосов
/ 11 мая 2019

Преобразование и сохранение изображений в DataURI

Я получаю изображения из URL, используя UrlFetch. Если у вас нет места для их размещения, просто поместите их в Google Photo Library и скопируйте URL-адрес, чтобы он тоже работал. Таким образом, вы можете выполнить всю обработку изображений для готовых веб-иллюстраций, прежде чем конвертировать их в стандартные графические редакторы.

function convImageUrl(url){
  var url=url || "http://jimesteban.com/images/mimincoopers.png";
  var blob=UrlFetchApp.fetch(url).getBlob();
  var b64Url='data:' + blob.getContentType() + ';base64,' + Utilities.base64Encode(blob.getBytes());
  return b64Url;
}

function saveDataURIInFile(filename,datauri,type) {
  Logger.log('filename: %s\ndatauri: %s\ntype: %s\n',filename,datauri,type);
  if(filename && datauri && type) {
    var folder=DriveApp.getFolderById(getGlobal('MediaFolderId'));
    var files=folder.getFilesByName(filename);
    while(files.hasNext()) {
      files.next().setTrashed(true);
    }
    var f=folder.createFile(filename,datauri,MimeType.PLAIN_TEXT);
    return {name:f.getName(),id:f.getId(),type:type,uri:DriveApp.getFileById(f.getId()).getBlob().getDataAsString()};
  }else{
    throw('Invalid input in saveDataURIInFile.');
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...