Multiple File Upload Google Apps Script -


put script upload file google drive. need able handle either big .zip file, or multiple image files. times out if upload big .zip file (around 7mb)

i prefer have upload multiple files.

apps script:

function doget(e) {   return htmlservice.createhtmloutputfromfile('form.html'); }  function uploadfiles(form) {    try {     var unitnumber = form.unitnumber;     if (unitnumber == "") {       unitnumber = "";     } else {       unitnumber = " #" + unitnumber;     }     var foldertitle = form.streetaddress + unitnumber + ' ' + form.cityname + ' ' + form.statename + ' - ' + form.businessname + ' ' + form.managername + ' - ' + form.propertytype;     var folder, folders = driveapp.getfolderbyid("0b0v8-0eo7tx8mtqzcgfwdxf6sfu");     var createfolder = folders.createfolder(foldertitle);     folder = createfolder;     var blob = form.filename;     var file = folder.createfile(blob);      return "file uploaded ";    } catch (error) {     logger.log('err: ' + error.tostring());     return error.tostring();   }  } 

form code

<body>   <div id="formcontainer">     <form id="myform">       <div>         <input type="text" name="businessname" placeholder="business name">       </div>       <div>         <input type="text" name="managername" placeholder="manager name">       </div>       <div>         <input type="text" name="streetaddress" placeholder="street address">       </div>       <div>         <input type="text" name="unitnumber" placeholder="unit number">       </div>       <div>         <input type="text" name="cityname" placeholder="city">       </div>       <div>         <input type="text" name="statename" placeholder="state">       </div>       <br>       <label for="propertytype">choose type</label>       <br>       <select name="propertytype">         <option value="interactive floor plan">ifp</option>         <option value="pictures only">pictures</option>         <option value="video only">video</option>         <option value="complete property">all</option>       </select>       <br>       <label for="myfile">compress files .zip file</label>       <br>       <input type="file" name="filename" id="myfile" multiple>       <input type="submit" value="upload file" onclick="this.value='uploading..';                     google.script.run.withsuccesshandler(fileuploaded)                     .uploadfiles(this.parentnode);                     return false;">     </form>   </div>    <div id="output"></div>    <script>     function fileuploaded(status) {       document.getelementbyid('myform').style.display = 'none';       document.getelementbyid('output').innerhtml = status;     }   </script>    <style>     body {       max-width: 400px;       padding: 20px;       margin: auto;     }     input {       display: inline-block;       width: 100%;       padding: 5px 0px 5px 5px;       margin-bottom: 10px;       -webkit-box-sizing: border-box;       ‌​ -moz-box-sizing: border-box;       box-sizing: border-box;     }     select {       margin: 5px 0px 15px 0px;     }     input[type="submit"] {       width: auto !important;       display: block !important;     }     input[type="file"] {       padding: 5px 0px 15px 0px !important;     }   </style> </body> 

i don't see other way make gas work multiple files if not multiple files inputs. can add dinamically input jquery (or plain javascript), , test in server side check how many input files got carried over.

like so: in html:

<input type="file" name="filename0" id="myfile"><div id="moreinputs"></div>  <button onclick="morefieds()">add more fieds</button> <script> var numinputs = 1; function morefieds(){   $('#moreinputs').append($('<input type="file" name="filename'+numinputs+'"   id="myfile">'));   numinputs++; } </script> 

in code.gs:

var numforms = 0; while( form[ (filename + numforms) ] ){   var blob = form[ (filename + numforms) ];   var file = folder.createfile(blob);   numforms++; } 

or more, send files inputs 1 one in script, giving each input it's own form, way can know when each file has done loading successhandler.


Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -