Saltar al contenido

Subiendo archivo usando Google Apps Script usando HtmlService

Solución:

Haga que el botón ejecute la función del lado del servidor usando google.script.run, pasando el formulario completo como el único parámetro. (Dentro de onClick del botón, ‘this’ es el botón, por lo que ‘this.parentNode’ es el formulario). Asegúrese de darle un nombre a la entrada del archivo.

<html>
<body>
<form>
   <input type="file" name="theFile">
   <input type="hidden" name="anExample">
   <input type="button" onclick="google.script.run.serverFunc(this.parentNode)">
</form>
</body>
</html>

En el servidor, haga que su función de manejo de formularios tome un parámetro: el formulario en sí. El formulario HTML del código del cliente se transformará en un objeto JavaScript equivalente donde todos los campos nombrados son propiedades de cadena, excepto los archivos que serán blobs.

function doGet() {
  return HtmlService.createHtmlOutputFromFile('myPage');
}

function serverFunc(theForm) {
   var anExampleText = theForm.anExample;  // This is a string
   var fileBlob = theForm.theFile;         // This is a Blob.
   var adoc = DocsList.createFile(fileBlob);    
   return adoc.getUrl();
}

Si realmente desea utilizar esa URL que está generando y devolviendo, asegúrese de agregar un controlador de éxito a la llamada google.script. Puedes modificarlo así:

// Defined somewhere before the form
function handler(url) {
  // Do something with the url.
}

<input type="button" onclick=
  "google.script.run.withSuccessHandler(handler).serverFunc(this.parentNode)">
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *