Загрузить файлы из Интернета на Google Drive - PullRequest
0 голосов
/ 23 сентября 2019

Я хочу создать форму на веб-сайте, используя Google API, где пользователь заполняет "имя", "адрес электронной почты" и файл для загрузки.Я хочу, чтобы файл был загружен на мой Google Диск, который работает (после учебника YT), но мне нужно создать новую папку с именем "name" + "email" из формы или с именем "name" и создать файлв этой папке с содержимым «email»

Я пробовал это, но я ничего не делал в .gs, поэтому я не знаю, как передать имя из .html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <title>Upload Files</title>
  </head>
  <body>
    <h1>Nezávazná poptávka!</h1>
    <form>
        <input type="text" class="box" name="name" placeholder="Celé jméno*">
        <br>
        <br>
        <input type="text" class="box" name="mail" placeholder="E-mail*">
        <br>
        <br>
        <input type="file" name="myFile" mulitple>
        <br>
        <br>
        <input type="button" id="submitBtn" value="Nahrát soubor">
        <label id="resp"></label>
    </form>

    <script>
      document.getElementById('submitBtn').addEventListener('click',
        function(e){
          google.script.run.withSuccessHandler(onSuccess).uploadFiles(this.parentNode)
        })

        function onSuccess(data){
          document.getElementById('resp').innerHTML = "File Uploaded to the path " +data;
        }

    </script>
  </body>
</html>
function doGet() {
  var html = HtmlService.createHtmlOutputFromFile('index');
  return html.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

function uploadFiles(data)
{
 var file = data.myFile;
 var name = data.name;
 var mail = data.mail;
 var folder = DriveApp.getFolderById('1lnLlX-zB8n4JZyEDdq242hiw2jX4qZWH');
 DriveApp.createFolder(name);
 DriveApp.createFile(mail, mail);

 var createFile = folder.createFile(file);
 return createFile.getUrl();
}

1 Ответ

1 голос
/ 24 сентября 2019

Вы можете сохранить свою страницу index.html такой же и завершить задачу с несколькими незначительными изменениями для вас code.gs:

function uploadFiles(data){

  var file = data.myFile;
  var name = data.name;
  var mail = data.mail;  

  var folder = DriveApp.getFolderById('<your-folder-id>');
  folder.createFolder(name + " + " + mail);

  var createFile = folder.createFile(file);
  return createFile.getUrl();
}

В качестве альтернативы, если вы хотите, чтобы файл был загружен в новоеСоздав папку, вы можете сделать это, заменив три последние строки:

  folder.createFolder(name + " + " + mail);

  var createFile = folder.createFile(file);
  return createFile.getUrl();

на:

  var folderID = folder.createFolder(name + " + " + mail).getId();

  var createFile = DriveApp.getFolderById(folderID).createFile(file);
  return createFile.getUrl();
...