Ich versuche zu laden Versuch ctrlq Code (gefunden hier: http://ctrlq.org/code/19747-google-forms-upload-files) zu ändern, um mehrere Dateien anstelle von 1.mehrere Dateien in Google Drive appscripts
Hier hochladen ist, was ich bisher habe: HTML :
<form id="myForm">
<input type="text" name="myName" placeholder="Name">
<input type="password" name="psw" placeholder="Password">
<input type="text" name="myFolder" placeholder="Folder Name">
<input type="file" name="myFile" id="filesID" multiple>
<input type="submit" value="Upload File"
onclick="this.value='Uploading..';
google.script.run.withSuccessHandler(fileUploaded)
.uploadFiles(this.parentNode);
return false;">
</form>
<div id="output"></div>
<script>
function fileUploaded(status) {
document.getElementById('myForm').style.display = 'none';
document.getElementById('output').innerHTML = status;
}
</script>
<style>
input { display:block; margin: 20px; }
</style>
Google Scripts:
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
try {
var input = document.getElementById('filesID');
var dropbox = "User Files";
var folder, folders = DriveApp.getFoldersByName(dropbox);
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}
for (var i = 0; i < input.length; i++) {
var file = folder.createFile(input.input[i]);
file.setDescription("Uploaded by " + form.myName);
}
return "File uploaded successfully " + file.getUrl();
} catch (error) {
return error.toString();
}
}
ich Fehler bin immer sagen, dass die Funktion Createfile wird nicht ausgeführt. Ich erwarte, dass die Variable myFile ursprünglich kein Array ist. Wie kann ich alle hochgeladenen Dateien in ein Array einfügen und dann die createFile für jede Datei ausführen?
Dank
Hier ist, wie ich mehrere Datei hochladen: http://stackoverflow.com/questions/28147486/handling-multiple-files-from-an-input-element-in-an-array-with-google-apps -scrip/28161468 # 28161468 –