Как загрузить файл на Диск Google через форму

В Формах стала доступна загрузка файлов https://goo.gl/KHDGft
Постановка задачи в виде часто задаваемых вопросов:
  1. Как загрузить файл на Диск через Формы Гугл?
  2. Как разрешить пользователю загрузить файл на мой Диск?
  3. Как можно загружать файлы на Диск через форму.


Краткие ответы
  1. Никак, такого функционала не существует.
  2. Вы можете это сделать четырьмя более-менее доступными способами, все из них используют Диск Гугл как сервис: использовать свое приложение, подключив Google Drive API; использовать стороннее приложение, которое получает доступ к вашему Диску через Google Drive API; использовать Google Apps Script с клиентской частью либо как сервер-обработчик REST, который Google Drive API подключает автоматически.
  3. Из п. 2 вытекает, что возможно использовать собственную форму для загрузки файла на Диск.
Вариант с Google Apps Script с клиентской частью.


Ограничения: максимальный размер файла 10Мб; страшная полоска "This application was created by another user, not by Google."; сложность изготовления, для неподготовленного пользователя.
Для начала, наберитесь терпения.

Создайте директорию, в которой будете хранить файлы (она может быть публичной, если это задано условием).

Создайте Таблицу https://docs.google.com/spreadsheets, в которой будут храниться данные формы (эта Таблица может находиться в той же папке, если это задано условием. Рассмотрите варианты доступа подробнее исходя из условий вашей задачи).

Создайте скрипт https://script.google.com.

В скрипте вам необходимо создать два файла (один уже есть по умолчанию, это Code.gs). Второй файл формата HTML под названием index.html.

Содержимое этих файлов:
Далее публикуем скрипт.
Эта публикация необходима здесь для того, чтобы показать, что это возможно. Код приведенный здесь, хоть и работает, но не является достаточным для полноценного функционирования. Тут не рассмотрены вопросы создания скриптов с нуля, публикации версий, режимов работы скриптов. Для дополнительной информации воспользуйтесь файлом 1. Google Apps Script. Начало. Нужны они вам или нет? 
Директория со скриптом, Таблицей и папкой файлов тут <-- ВАТТУТ ВОТ
Отправить файл на мой Диск вы можете через опубликованный скрипт
Посмотреть результат работы

Создано по мотивам кучи писем, вопросов и статьи Upload Files to Google Drive with Google Apps Script

Комментарии

  1. Здравствуйте,
    Спасибо за материал.
    Скажите пожалуйста, как я могу внедрить как iframe этот скрипт на мой лендинг?

    ОтветитьУдалить
    Ответы
    1. Этот комментарий был удален автором.

      Удалить
    2. Спасибо, Александр за работу.
      Подскажите, пожалуйста, как данный файл разместить в виде iframe?

      Удалить
    3. Спасибо, Александр за работу.
      Подскажите, пожалуйста, как разместить итоговый файл в iframe?

      Удалить
    4. См. комментарий в коде скрипта

      /*
      return res;
      return 'Файл(ы) загружен(ы), йо! ' + res.join(', ');
      */

      Он отправляет в браузер ответ. Из этого ответа можно построить список файлов.

      Удалить
  2. Здравствуйте,как сделать чтобы выдавал ссылку на файл ?
    Как сделать общедоступным?
    Файл загружен,йо ссылка:

    ОтветитьУдалить
    Ответы
    1. Сама Форма не сможет вернуть респонденту ссылку на файл. Необходимо либо писать скрипт, либо искать альтернативное решение.

      Удалить
    2. Возможно, я неправильно вас понял. Если вы хотите ответить ссылкой на декйствия пользователя, вы можете попробовать что-то из комментариев, которые я добавил для вас в коде https://gist.github.com/contributorpw/3fa2ced154c5bec393d6#file-code-gs-L53

      Удалить
  3. Добрый день,А для отправки файлов данным способом нужен аккаунт google тем кто отправляет?

    ОтветитьУдалить
    Ответы
    1. Если делать по примеру из поста, то таких ограничений нет.

      Удалить
  4. Добрый день, при загрузке скрипта на сайт вместо формы выходит ошибка - Не удалось найти функцию скрипта: doGet.
    Подскажите, в чем может быть проблема?

    ОтветитьУдалить
    Ответы
    1. Нужно проверить, весь ли код содержит ваш проект.

      Удалить
  5. Добрый день, при размещении формы на своем сайте, появляется ошибка - Не удалось найти функцию скрипты doGet. Подскажите, в чем проблема?

    ОтветитьУдалить
    Ответы
    1. Хм, очень интересно. Возможно, после внесения изменений вам нужно еще раз создать новую версию и опубликовать именно ее. В этой папке полностью рабочий код https://drive.google.com/folderview?id=0Bztea6vSatozfkxoeDQ3ZFVEeUFxYmM3UVVha3otSjEtYXFockhBcldoOWh5TkJodGxodGs&usp=sharing

      Удалить
    2. Не было общего доступа у главной папки, работает. Спасибо

      Удалить
  6. Здравствуйте, странно, но место ссылки на диск залетает FileUpload http://prntscr.com/s3z17s

    ОтветитьУдалить
    Ответы
    1. К сожалению, не смогу по картинке что-либо определить. В оригинале все ок https://docs.google.com/spreadsheets/d/1toHBN8rPp9d0GFQQY8XEypMS-CkKoMAvcfQMkyulrR0/edit?usp=sharing Попробуйте задать вопрос тут https://contributor.pw/contacts/

      Удалить
    2. cстолкнулся с тойже проблемой FileUpload

      https://script.google.com/home/projects/1AehGwEa1zJanCNtzaqAAaWlvk5GnH6T7H7N7Rg78Xk0974YUgD2aojxv/edit

      Удалить
    3. К сожалению, оперативность не в приоритете на данный момент.

      Удалить
  7. Добрый день, очень полезное описание, делал все по инструкции, почему то не загружаются фалы (картинки) уже как не пробовал, данные в гугл таблицу подтягиваются но без ссылок на картинки, и без надписи "пусто" и папка для картинок остается пустой ( Что может быть не так подскажите пожалуйста.

    ОтветитьУдалить
    Ответы
    1. Пришлите свой проект. Навскидку сказать сложно.

      Удалить
    2. У меня тоже самое, как вы решили проблему ?

      Удалить
    3. Я нашел проблему. Постараюсь опубликовать новую версию в ближайшее время.

      Удалить
  8. Приветствую! Что может быть загружается файл, но открыть его невозможно, если скачать его тот же прикол ? Что может быть не так ???

    ОтветитьУдалить
    Ответы
    1. Скорее всего проблема в расширении файла. По какой-то причине Диск его не распознает. Нужно посмотреть на ваш проект и файлы, которые вы загружаете.

      Удалить
  9. Привет, а как убрать лимит в 10 мб на загружаемый файл?

    ОтветитьУдалить
    Ответы
    1. По идее, ограничение на данный момент 50Мб. Есть и другие способы загрузки, когда лимин 5Тб.

      Удалить
  10. Привет, спасибо за скрипт, а как убрать лимит на загружаемый файл? 10 мб который

    ОтветитьУдалить
    Ответы
    1. Используя этот способ - никак. Следите за обновлениями на https://contributor.pw/, скоро выложу там код, который обновит этот пример. Разрешенный размер файлов до 5Tb.

      Удалить
    2. Александр, добрый день!
      Скажите, где можно почитать о способе загрузки с лимитом в 5тб?
      Есть какой-нибудь гайд внятный?
      Спасибо!

      Удалить
    3. Пока гайда нет. Пришлось отрабатывать безопасность. Проверяю на клиентах.

      Удалить

Отправить комментарий

Спасибо за ваше сообщение. Оно может быть не опубликовано сразу из-за того, что попало на предмодерацию. Дождитесь публикации сообщения. Спасибо за понимание.

Thank you for your message. It may not be published immediately due to the fact that it got to pre-moderation. Wait for the message to be published. Thank you for understanding.

Не нашли ответ? Пишите!

Имя

Электронная почта *

Сообщение *