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

How to group boxplot outliers in gnuplot -

cakephp - simple blog with croogo -

bash - Performing variable substitution in a string -