Google 脚本继续上传同一文件夹中的文件
Google script keep uploading files in Same folder
我有两个文件:code.gs 和 form.html。我在 code.gs 中更改了文件夹名称,但它仍然在同一文件夹中上传,即 Student Files。
form.html
<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>
<style>
input { display:block; margin: 20px; }
</style>
code.gs
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
try {
var folderName = "Test";
var exist = true;
try {
var folderName = DocsList.getFolder(folderName)
}
catch(err) {
exist=false
}
if (exist) {
folder = folderName;
} else {
folder = DriveApp.createFolder(folderName);
}
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();
}
}
code.gs 文件包含一个变量文件夹名称。
已检查此名称,如果此名称的文件夹不存在,则会创建一个新文件夹。但这里没有创建新文件夹。相反,文件被上传到同一个文件夹中,即 Student Files。
改变你的code.gs
:
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
try {
var folderName = "Test";
var exist = true;
try {
var folderName = DriveApp.getFoldersByName(folderName)
}
catch(err) {
exist=false
}
if (exist) {
folder = folderName;
} else {
folder = DriveApp.createFolder(folderName);
}
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();
}
}
上一个答案只是问题代码的副本。
DocsList.getFolder(folderName) 函数可能无法获取任何文件夹,这就是文件上传到之前文件夹中的原因。
我有两个文件:code.gs 和 form.html。我在 code.gs 中更改了文件夹名称,但它仍然在同一文件夹中上传,即 Student Files。
form.html
<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>
<style>
input { display:block; margin: 20px; }
</style>
code.gs
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
try {
var folderName = "Test";
var exist = true;
try {
var folderName = DocsList.getFolder(folderName)
}
catch(err) {
exist=false
}
if (exist) {
folder = folderName;
} else {
folder = DriveApp.createFolder(folderName);
}
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();
}
}
code.gs 文件包含一个变量文件夹名称。
已检查此名称,如果此名称的文件夹不存在,则会创建一个新文件夹。但这里没有创建新文件夹。相反,文件被上传到同一个文件夹中,即 Student Files。
改变你的code.gs
:
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
try {
var folderName = "Test";
var exist = true;
try {
var folderName = DriveApp.getFoldersByName(folderName)
}
catch(err) {
exist=false
}
if (exist) {
folder = folderName;
} else {
folder = DriveApp.createFolder(folderName);
}
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();
}
}
上一个答案只是问题代码的副本。
DocsList.getFolder(folderName) 函数可能无法获取任何文件夹,这就是文件上传到之前文件夹中的原因。