Я не могу отправить форму в html с помощью appscript, когда я использую тип ввода файла и развертываю его как веб-приложение с доступом только ко мне - PullRequest
0 голосов
/ 06 мая 2020

Я не знаю, есть ли способ сделать эту работу, но я хочу создать форму с типом ввода = файл. Но когда я отправляю форму, она не работает из-за типа ввода = файл и вызывает из моих прав доступа установлен для меня только в приложении Google.

Edit1: Первый раз отправляю код, надеюсь, я не напортачил. Ну, код выглядит так, я просто показываю базовый код, с которым у меня проблемы. Всякий раз, когда я удаляю строку с входным файлом, он отправляет форму и добавляет в электронную таблицу значение, которое я ввел в текстовое поле имени. И я заметил, что это также работает, когда я оставляю строку входного файла, когда я меняю разрешения в моем сценарии приложения, когда я публикую sh код как веб-приложение, и в поле «Кто имеет доступ к приложению» поставить «Любой, даже анонимный», дело в том, что я не хочу, чтобы кто-нибудь мог получить доступ к веб-приложению. Я просто подумываю переписать код gs, чтобы проверить доступ пользователя к веб-приложению, но я не уверен, будет ли это безопасно.

Спасибо за любую информацию или помощь, которую вы могли бы принести.

PS. Я учусь HTML, я не айтишник. Не очень хорош в engli sh тоже.

GS Code:

function doGet() { 
var template = HtmlService.createTemplateFromFile('HtmlName'); 
return template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);}

function processForm(formObject) {
var formBlob = formObject.myFile;
var driveFile = DriveApp.createFile(formBlob);

var firstName = formObject.firstName;

DriveApp.getFolderById("anyID").addFile(driveFile);   

ss.appendRow([formObject.firstName,
                           ]);}

Html File

<!DOCTYPE html>
<html>
<body>
<form class="w3-container" id="myForm" onsubmit="handleFormSubmit(this); ">

  <p>
  <input class="w3-input" name="myFile" type="file">
  <input class="w3-input" type="text" name="firstName">      
  <p>     
  <input class="w3-button" type="submit" value="Submit">

  </form>
  </body>

  <script>
  // Prevent forms from submitting.
  function preventFormSubmit() {
  var forms = document.querySelectorAll('form');
  for (var i = 0; i < forms.length; i++) {
  forms[i].addEventListener('submit', function(event) {
  event.preventDefault();
  });    }      }
  window.addEventListener('load', preventFormSubmit);

  function handleFormSubmit(formObject) {
  google.script.run.withSuccessHandler(updateUrl).processForm(formObject);
  }     
  </script>
  </html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...