Encontré algo similar aquí , pero parece mucho más complicado de lo que necesito.
Estoy cargando una imagen en una aplicación web y me gustaría guardar la imagen en Google Drive.
Tengo problemas para pasar el archivo en un formato legible para DriveApp.getFolderById("xxxxxxxxxxxxx").createFile(file); y me sigue dando error. No sé cómo pasar el archivo en el formato correcto.
HTML:
<input id = "output2" type="file" accept="image/*"> <script> document.getElementById('output2').addEventListener('change', (e) => triggerF(e.target.files)); </script> function triggerF(file) { console.log("event triggered"); console.log(file.name); google.script.run.withSuccessHandler(yourCallBack1).upload(file)} function yourCallBack1() { console.log("callback called"); }SG:
function upload(e) { const file = new Blob(e); const filecreat = DriveApp.getFolderById("xxxxxxxxxxxxx").createFile(file); console.log("created file"); }ACTUALIZACIÓN: la solución n. ° 2 de Tanaike funciona para mí. Por favor verifique a continuación.
Creo que su objetivo es el siguiente.
I am uploading an image to a webapp and I would like to save the image into google drive. , desea cargar un archivo de imagen mediante Web Apps.En este caso, ¿qué tal la siguiente modificación?
Afortunadamente, el error del análisis del formulario HTML se ha eliminado. Ref Por esto, puede utilizar el siguiente script modificado.
<form><input id = "output2" name="file" type="file" accept="image/*"></form> <script> document.getElementById('output2').addEventListener('change', (e) => triggerF(e.target.parentNode)); function triggerF(file) { console.log("event triggered"); google.script.run.withSuccessHandler(yourCallBack1).upload(file); } function yourCallBack1() { console.log("callback called"); } </script> function upload(e) { const filecreat = DriveApp.getFolderById("xxxxxxxxxxxxx").createFile(e.file); console.log("created file"); }Como otro método, también puede usar el siguiente script.
<input id = "output2" type="file" accept="image/*"> <script> document.getElementById('output2').addEventListener('change', (e) => triggerF(e.target.files[0])); function triggerF(file) { console.log("event triggered"); const fr = new FileReader(); fr.readAsArrayBuffer(file); fr.onload = (f) => { google.script.run.withSuccessHandler(yourCallBack1).upload([[...new Int8Array(f.target.result)], file.type, file.name]); }; } function yourCallBack1() { console.log("callback called"); } </script> function upload(e) { const filecreat = DriveApp.getFolderById("xxxxxxxxxxxxx").createFile(Utilities.newBlob(...e)); console.log("created file"); }