├── README.md ├── code.gs └── form.html /README.md: -------------------------------------------------------------------------------- 1 | # apps-script-multi-file-upload 2 | Apps Script that will enable anonymous users to upload multiple files to Google Drive. 3 | -------------------------------------------------------------------------------- /code.gs: -------------------------------------------------------------------------------- 1 | function doGet() { 2 | return HtmlService.createHtmlOutputFromFile('form').setSandboxMode( 3 | HtmlService.SandboxMode.IFRAME); 4 | } 5 | 6 | function createFolder(parentFolderId, folderName) { 7 | try { 8 | var parentFolder = DriveApp.getFolderById(parentFolderId); 9 | var folders = parentFolder.getFoldersByName(folderName); 10 | var folder; 11 | if (folders.hasNext()) { 12 | folder = folders.next(); 13 | } else { 14 | folder = parentFolder.createFolder(folderName); 15 | } 16 | return { 17 | 'folderId' : folder.getId() 18 | } 19 | } catch (e) { 20 | return { 21 | 'error' : e.toString() 22 | } 23 | } 24 | } 25 | 26 | function uploadFile(base64Data, fileName, folderId) { 27 | try { 28 | var splitBase = base64Data.split(','), type = splitBase[0].split(';')[0] 29 | .replace('data:', ''); 30 | var byteCharacters = Utilities.base64Decode(splitBase[1]); 31 | var ss = Utilities.newBlob(byteCharacters, type); 32 | ss.setName(fileName); 33 | 34 | var folder = DriveApp.getFolderById(folderId); 35 | var files = folder.getFilesByName(fileName); 36 | var file; 37 | while (files.hasNext()) { 38 | // delete existing files with the same name. 39 | file = files.next(); 40 | folder.removeFile(file); 41 | } 42 | file = folder.createFile(ss); 43 | return { 44 | 'folderId' : folderId, 45 | 'fileName' : file.getName() 46 | }; 47 | } catch (e) { 48 | return { 49 | 'error' : e.toString() 50 | }; 51 | } 52 | } -------------------------------------------------------------------------------- /form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | 26 |
27 |

File Upload Form

28 |

Please complete the form below and upload your resume and certificates.

29 |
30 |
31 |
32 | 33 |
34 |
35 |
36 |
37 | 38 | 39 |
40 |
41 |
42 |
43 |

Resume

44 |

*Allowed file types are .pdf, .doc, .docx. Maximum file size of 3mb.

45 | 46 |
47 |
48 |
49 |
50 | 51 |
52 |
53 |
54 |
55 |
56 | 57 | 63 |
64 |
65 |
66 |

This form was created for Tita Homecare.

67 |

Please contact Tita Homecare for any questions/concerns regarding this form.

68 |
69 |
70 |
71 | 72 | 73 | 74 | 75 | 191 | 192 | 193 | --------------------------------------------------------------------------------