Esempio di caricamento del file di Google Forms

Come faccio a consentire ai miei spettatori di utilizzare Google Form per caricare alcuni file nel mio modulo e salvarlo sul mio Google Drive?

Sto cercando un esempio completo: deve indicare quale codice aggiungere all’origine HTML di Google Form di esempio. Come utilizzare Google Apps Script per caricare il file del visualizzatore sul mio account Google Drive?

Aggiornamento: Google Form può ora caricare i file. Questa risposta è stata pubblicata prima che Google Forms fosse in grado di caricare i file.

Questa soluzione non utilizza Google Forms. Questo è un esempio di utilizzo di un’app Web Script di app, che è molto diversa da un modulo di Google. Un’app Web è fondamentalmente un sito Web, ma non è ansible ottenere un nome di dominio per questo. Questa non è una modifica di un modulo di Google, che non può essere fatto per caricare un file.

NOTA : ho avuto un esempio sia del servizio di interfaccia utente sia del servizio HTML, ma ho rimosso l’esempio del servizio di interfaccia utente, perché il servizio di interfaccia utente è deprecato.

NOTA : l’unica impostazione sandbox disponibile è ora IFRAME . Se si desidera utilizzare un attributo onsubmit nel tag iniziale del modulo:

, è ansible che il modulo scompaia dallo schermo dopo l’invio del modulo.

Se si utilizza la modalità NATIVA, l’app Web di caricamento dei file potrebbe non funzionare più. Con la modalità NATIVE, l’invio di un modulo non richiamava il comportamento predefinito della pagina che scompare dallo schermo. Se si utilizza la modalità NATIVA e il modulo di caricamento dei file non funziona più, è ansible che si stia utilizzando un pulsante di tipo “invia”. Suppongo che tu stia utilizzando l’API lato client “google.script.run” per inviare dati al server. Se vuoi che la pagina scompaia dallo schermo dopo l’invio di un modulo, puoi farlo in un altro modo. Ma potrebbe non interessarti, o addirittura preferire che la pagina rimanga sullo schermo. A seconda di ciò che desideri, dovrai configurare le impostazioni e il codice in un determinato modo.

Se si utilizza un pulsante di tipo “invia” e si desidera continuare a utilizzarlo, è ansible provare ad aggiungere event.preventDefault(); al tuo codice nella funzione di gestione dell’evento di invio. O dovrai utilizzare l’API del lato client google.script.run .


Con il servizio HTML di Apps Script è ansible creare un modulo personalizzato per il caricamento di file da un’unità del computer degli utenti sul tuo Google Drive. Questo esempio richiede la scrittura di un programma, ma qui ho fornito tutto il codice di base.

Questo esempio mostra un modulo di caricamento con il servizio HTML di Google Apps Script.

Quello che ti serve

  • Account Google
  • Google Drive
  • Script di Google Apps – chiamato anche Google Script

Script di Google Apps

Esistono vari modi per terminare con l’editor di codice Script di Google Apps.

  • Carica lo script delle app direttamente dall’indirizzo web: https://script.google.com
  • Apri prima un foglio Google, quindi apri Script di app
  • Vai a Google Drive, quindi apri Script app: https://drive.google.com/drive/#my-drive
  • Vai a Google Drive, quindi fai clic su un file di progetto Apps Script
  • Apri lo script delle app da Google Documenti
  • eccetera

Lo dico perché se non sei consapevole di tutte le possibilità, potrebbe essere un po ‘di confusione. Lo script di Google Apps può essere incorporato in un sito, fogli, documenti o moduli di Google o utilizzato come app indipendente.

Panoramica degli script di app

Questo esempio è un’app “Stand Alone” con servizio HTML.

Servizio HTML: crea un’app Web utilizzando HTML, CSS e Javascript

Lo script di Google Apps ha solo due tipi di file all’interno di un Project :

  • copione
  • HTML

I file di script hanno un’estensione .gs . Il codice .gs è un codice lato server scritto in JavaScript e una combinazione dell’API di Google.

  • Copia e incolla il seguente codice
  • Salvarla
  • Crea la prima versione nominata
  • Pubblicalo
  • Imposta le autorizzazioni

    e puoi iniziare a usarlo.

A partire da:

  • Crea un nuovo progetto vuoto in Script di app
  • Copia e incolla in questo codice:

Carica un file con il servizio HTML:

File Code.gs (creato per impostazione predefinita)

 //For this to work, you need a folder in your Google drive named: // 'For Web Hosting' // or change the hard coded folder name to the name of the folder // you want the file written to function doGet(e) { return HtmlService.createTemplateFromFile('Form') .evaluate() // evaluate MUST come before setting the Sandbox mode .setTitle('Name To Appear in Browser Tab') .setSandboxMode();//Defaults to IFRAME which is now the only mode available } function processForm(theForm) { var fileBlob = theForm.picToLoad; Logger.log("fileBlob Name: " + fileBlob.getName()) Logger.log("fileBlob type: " + fileBlob.getContentType()) Logger.log('fileBlob: ' + fileBlob); var fldrSssn = DriveApp.getFolderById(Your Folder ID); fldrSssn.createFile(fileBlob); return true; } 

Crea un file html:

       

Main Heading



Questo è un esempio funzionante completo. Ha solo due pulsanti e un elemento

, quindi non vedrai molto sullo schermo. Se lo script .gs esito positivo, viene restituito true e viene onSuccess una funzione onSuccess . La funzione onSuccess (updateOutput) inietta l’HTML interno nell’elemento div con il messaggio “Il file è stato UPLOADED!”

  • Salva il file, dai un nome al progetto
  • Usando il menu: File , Manage Version quindi Salva la prima versione
  • Publish , Deploy As Web App quindi aggiorna

Quando si esegue lo script per la prima volta, verranno richieste le autorizzazioni poiché salva i file nell’unità. Dopo aver concesso le autorizzazioni per la prima volta, lo script Apps si interrompe e non verrà completato. Quindi, devi eseguirlo di nuovo. Lo script non chiederà più le autorizzazioni dopo la prima volta.

Il file Apps Script verrà visualizzato nel tuo Google Drive. In Google Drive puoi impostare le autorizzazioni per chi può accedere e utilizzare lo script. Lo script viene eseguito semplicemente fornendo il link all’utente. Usa il link proprio come vuoi caricare una pagina web.

Un altro esempio di utilizzo del servizio HTML può essere visto a questo link qui su StackOverflow:

Caricamento file con servizio HTML

NOTE sul servizio di interfaccia utente deprecato:

C’è una differenza tra il servizio di interfaccia utente e il metodo UI getUi() della class Spreadsheet (o un’altra class) Il servizio di interfaccia utente Script Apps è stato ritirato l’11 dicembre 2014. Continuerà a funzionare per un certo periodo di tempo, ma sei incoraggiato a utilizzare il servizio HTML.

Documentazione Google – Servizio UI

Anche se il servizio di interfaccia utente è obsoleto, esiste un metodo getUi() della class del foglio di calcolo per aggiungere menu personalizzati , che NON è deprecato:

Classe Foglio di calcolo – Ottieni il metodo dell’interfaccia utente

Lo dico perché potrebbe essere fonte di confusione perché entrambi usano l’ interfaccia utente terminologica.

Il metodo UI restituisce un tipo di ritorno Ui .

È ansible aggiungere HTML a un servizio di interfaccia utente, ma non è ansible utilizzare un , o nell'HTML con il servizio di interfaccia utente.

Ecco un collegamento a un file App Web App Script condiviso con un modulo di input:

File condiviso - Modulo di contatto

A partire da ottobre 2016, Google ha aggiunto un tipo di domanda per il caricamento di file in Google Form nativi, non è necessario lo script di Google Apps. Vedi la documentazione .