gpt4 book ai didi

javascript - 如果未指定文件上传,Google Apps 脚本中会出现错误

转载 作者:行者123 更新时间:2023-12-03 11:35:17 26 4
gpt4 key购买 nike

我想为用户提供上传文件的选项,但这并不是绝对必要的。如果没有指定文件,这个脚本似乎会出现故障。我该如何解决这个问题?看起来它真正不喜欢的行是: var file1 =folder.createFile(blob1);

function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}

function uploadFiles(form) {

try {

var dropbox = "Student Files";
var folder, folders = DriveApp.getFoldersByName(dropbox);

if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}


var id = "1L2syfAOm6MiYPtWuWwFZFK_ZtLpLOjNx9EpjHh2IKUY";
var ss = SpreadsheetApp.openById(id);


var blob1 = form.myFile1;
var file1 = folder.createFile(blob1);
file1.setDescription("Uploaded by " + form.myName);
var f1 = '=HYPERLINK("' + file1.getUrl() + '", "File 1")';


Logger.log("test");

var sheet = ss.getSheetByName('Sheet1');
sheet.appendRow([form.myName, form.addy, form.twitter, form.status, form.what, form.projTitle,
form.brief, form.full, form.role, form.date, form.website, f1]);


return "Your entry was successfully uploaded!";



} catch (error) {

return error.toString();
}

}

编辑:感谢建议,这就是我最终得到的结果(允许三个可选文件)

function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}

function uploadFiles(form) {

try {

var dropbox = "Student Files";
var folder, folders = DriveApp.getFoldersByName(dropbox);

if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}


var id = "1L2syfAOm6MiYPtWuWwFZFK_ZtLpLOjNx9EpjHh2IKUY";
var ss = SpreadsheetApp.openById(id);

var blob1 = form.myFile1;
var blob2 = form.myFile2;
var blob3 = form.myFile3;

// check for empty blobs on file attachment uploads
if( !isEmpty(blob1) ) {
var file1 = folder.createFile(blob1);
file1.setDescription("Uploaded by " + form.myName);
var f1 = '=HYPERLINK("' + file1.getUrl() + '", "File 1")';
} else {
var f1 = "nada";
}

if( !isEmpty(blob2) ) {
var file2 = folder.createFile(blob2);
file2.setDescription("Uploaded by " + form.myName);
var f2 = '=HYPERLINK("' + file2.getUrl() + '", "File 2")';
} else {
var f2 = "nada";
}

if( !isEmpty(blob3) ) {
var file3 = folder.createFile(blob3);
file3.setDescription("Uploaded by " + form.myName);
var f3 = '=HYPERLINK("' + file3.getUrl() + '", "File 3")';
} else {
var f3 = "nada";
}

Logger.log("test");

var sheet = ss.getSheetByName('Sheet1');
sheet.appendRow([form.myName, form.addy, form.twitter, form.status, form.what, form.projTitle,
form.brief, form.full, form.role, form.date, form.website, f1, f2, f3]);


return "Your entry was successfully uploaded!";



} catch (error) {

return error.toString();
}

}

// New stuff. A function that tests if a string is empty or null
function isEmpty(str) {
return (!str || 0 === str.length);
}

最佳答案

你不能只测试是否指定了名称吗? IE。添加一个 if 语句来检查名称不为 null 且不为空...您可能还想测试斜线之类的内容,以防用户尝试创建子目录...

我从 here 取消了对 null 或空的测试,但您可以自己推出。

function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}

function uploadFiles(form) {

try {

var dropbox = "Student Files";
var folder, folders = DriveApp.getFoldersByName(dropbox);

if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}


var id = "1L2syfAOm6MiYPtWuWwFZFK_ZtLpLOjNx9EpjHh2IKUY";
var ss = SpreadsheetApp.openById(id);


var blob1 = form.myFile1;

if( !isEmpty(blob1) ) {

var file1 = folder.createFile(blob1);
file1.setDescription("Uploaded by " + form.myName);
var f1 = '=HYPERLINK("' + file1.getUrl() + '", "File 1")';


Logger.log("test");

var sheet = ss.getSheetByName('Sheet1');
sheet.appendRow([form.myName, form.addy, form.twitter, form.status, form.what, form.projTitle,
form.brief, form.full, form.role, form.date, form.website, f1]);


return "Your entry was successfully uploaded!";

} else {
return "No file name specified!";
}


} catch (error) {

return error.toString();
}

}

// New stuff. A function that tests if a string is empty or null
function isEmpty(str) {
return (!str || 0 === str.length);
}

关于javascript - 如果未指定文件上传,Google Apps 脚本中会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26542518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com