Загрузите файл в папку на диске Google, используя скрипт приложения - PullRequest
1 голос
/ 27 марта 2019

Я использую этот сценарий для загрузки URL-адреса, заданного в ячейке листа Google, в определенную папку на диске Google, называемую «game_thumb». Если ячейка B1 - «yyyyy.com/picture.png», я ожидаю загрузки picture.pngв папку на диске Google.Я получаю сообщение об ошибке «ReferenceError:« DocsList »не определен» (строка 5). Я также хотел бы, чтобы файл был переименован, чтобы включить ячейку A1 (contentCellA1_picture.png), прежде чем он будет загружен на диск. Код, который я использую:

function getFile(fileURL) {
  // see https://developers.google.com/apps-script/class_urlfetchapp
  var response = UrlFetchApp.fetch(fileURL);
  var fileBlob = response.getBlob()
  var folder = DocsList.getFolder('game_thumb');
  var result = folder.createFile(fileBlob);
  debugger;  // Stop to observe if in debugger
}

1 Ответ

0 голосов
/ 28 марта 2019
  • Вы хотите сохранить загруженный файл в определенную папку с именем game_thumb.
  • Вы хотите установить значение ячейки "A1" для имени файла загруженного файла.

Если мое понимание верно, как насчет этой модификации?

На ваш вопрос 1:

Из вашего вопроса выяснилось, что, хотя я не уверен, являются ли данные нужным вам файловым блобом, данные из URL можно получить. Поэтому, чтобы устранить ошибку, измените ее следующим образом.

От:

var folder = DocsList.getFolder('game_thumb');

Кому:

var folder = DriveApp.getFoldersByName('game_thumb').next();
  • В этой модификации предполагается, что папка с именем game_thumb является единственной на вашем диске. Если есть папки с несколькими одинаковыми именами, скажите, пожалуйста.

На ваш вопрос 2:

Пожалуйста, измените следующим образом.

От:

var result = folder.createFile(fileBlob);

Кому:

var name = SpreadsheetApp.getActiveSheet().getRange("A1").getValue();
var result = folder.createFile(fileBlob).setName(name);
  • Исходя из вашего вопроса, я не уверен, используете ли вы скрипт, связанный с контейнером, или автономный скрипт, а также я не уверен, где находится лист с ячейкой "A1". Таким образом, эта модификация предполагает, что используется ячейка "А1" активного листа.

Ссылки:

Если я неправильно понял ваш вопрос и эта модификация не сработала, я прошу прощения. В то время, вы можете предоставить информацию о ситуации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...