Forms 将文件上载到Google Drive中的目录
我正在尝试设置一个表单,将文件上传到我的谷歌硬盘的特定目录,而不是主目录 我发现了一个可以上传文件的脚本,虽然我更喜欢它放在另一个文件夹中 当前文件将进入“/” 如何使文件转到“/new/property/uploads/” 谷歌脚本:Forms 将文件上载到Google Drive中的目录,forms,google-apps-script,google-drive-api,Forms,Google Apps Script,Google Drive Api,我正在尝试设置一个表单,将文件上传到我的谷歌硬盘的特定目录,而不是主目录 我发现了一个可以上传文件的脚本,虽然我更喜欢它放在另一个文件夹中 当前文件将进入“/” 如何使文件转到“/new/property/uploads/” 谷歌脚本: function doGet(e) { return HtmlService.createHtmlOutputFromFile('form.html'); } function uploadFiles(form) { try { var d
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
try {
var dropbox = "Uploads";
var folder, folders = DriveApp.getFoldersByName(dropbox);
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}
var blob = form.myFile;
var file = folder.createFile(blob);
file.setDescription("Uploaded by " + form.myName);
return "File uploaded successfully " + file.getUrl();
} catch (error) {
return error.toString();
}
}
表单脚本:
<form id="myForm">
<input type="text" name="myName" placeholder="Your name..">
<input type="file" name="myFile">
<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>
功能文件上传(状态){
document.getElementById('myForm').style.display='none';
document.getElementById('output')。innerHTML=status;
}
谢谢您的帮助。通过driveApp获取文件夹并保存在那里,非常简单
folder=driveApp.getFolderById(ID)
在这种情况下,对文件夹的检查是没有意义的。如果您想要的文件夹不存在,并且要创建一个新的子文件夹树,则需要在该文件夹中创建一个新文件夹。folder类有一个
createFolder()
方法。DriveApp类还有一个createFolder()
方法,但它会将一个新文件夹放入主驱动器根目录中。因此,DriveApp和Folder都有一个createFolder()
方法。关键是首先获取对要使用createFolder()
创建新文件夹作为子文件夹的文件夹的引用
function uploadFiles(form) {
try {
var dropbox = "Uploads";
var folder, folders = DriveApp.getFoldersByName(dropbox);
if (folders.hasNext()) {
folder = folders.next();
} else {
var firstLevelFolder = DriveApp.createFolder("new");
var secondLevelFolder = firstLevelFolder.createFolder("property");
var folder = secondLevelFolder.createFolder(dropbox);
}
var blob = form.myFile;
var file = folder.createFile(blob);
file.setDescription("Uploaded by " + form.myName);
return "File uploaded successfully " + file.getUrl();
} catch (error) {
Logger.log('err: ' + error.toString());
return error.toString();
}
}