Javascript 将添加到Google Drive的图片链接插入Google工作表
这是已在此处解决的问题的第二部分: 我正在开发一个web应用程序,用户可以通过点击按钮上传图片。此操作将使用唯一的文件夹和名称将图片上载到我的google drive中的某个目录中 现在,我正试图在上传图片的任何时候复制并粘贴图片的谷歌驱动链接 在@Tanaike的帮助下,当我在“Code.gs”中的getFileUrl(fn,I)函数中预先分配了文件夹名(fn)和图片标题(I)的一部分时,我能够从google drive将url链接到google工作表中。但每当我试图传递用户输入“fn”和“I”时,我就会得到这个“TypeError:无法调用未定义的”方法“getFilesByName”Javascript 将添加到Google Drive的图片链接插入Google工作表,javascript,html,google-apps-script,web-applications,Javascript,Html,Google Apps Script,Web Applications,这是已在此处解决的问题的第二部分: 我正在开发一个web应用程序,用户可以通过点击按钮上传图片。此操作将使用唯一的文件夹和名称将图片上载到我的google drive中的某个目录中 现在,我正试图在上传图片的任何时候复制并粘贴图片的谷歌驱动链接 在@Tanaike的帮助下,当我在“Code.gs”中的getFileUrl(fn,I)函数中预先分配了文件夹名(fn)和图片标题(I)的一部分时,我能够从google drive将url链接到google工作表中。但每当我试图传递用户输入“fn”和“I
page.html --这是前端,用户在这里上传图片
插入照片
进口图片
正如@Jescanellas和@Tanaike所评论的,更好的方法是修复您在page-js.html中编辑函数doStuff2的代码,如下所示:
function doStuff2(fileId00) {
var userInfo = {};
userInfo.firstName = document.getElementById("fn").value;
userInfo.number = i;
userInfo.fileUrl = "https://docs.google.com/document/d/"+fileId00 +"/";
i++;
google.script.run.userClicked(userInfo);
}
关于你得到的错误,你没有在中间使用括号,这是导致错误的原因,因为在循环中只取循环后的第一行代码.gs:
while (folders0.hasNext()) {
var folder0=folders0.next();
var dropbox20=[date0,fn].join(" ");
var folder20,folders20=folder0.getFoldersByName(dropbox20);
while (folders20.hasNext()) {
var folder20=folders20.next();
var file0, files0= folder20.getFilesByName(i);
while (files0.hasNext()) {
var file0=files0.next();
var fileId0=file0.getUrl();
return fileId0;
}
}
}
关于文件Id的问题,您可以在创建文件后轻松获取,因为这将返回一个文件对象,您可以使用getId方法[1]从中获取Id:
file = folder.createFolder([fn,date].join(" ")).createFile(blob);
fileId = file.getId();
[1] 我能问一下你的问题吗?关于
如果我在getFileUrl函数中手动设置fn和I值,并且在指定目录下有相应的图片和文件夹,我会在我的google工作表中得到一个有效链接。
,我可以问你关于fn
和I
的示例正确值吗?如果我误解了,很抱歉,但是您想要文件的链接还是文件夹路径?因为如果只是链接,文件的id就足够了:@Jescanellas我正在尝试获取文件链接。因此,我还尝试设置getUrl()以返回文件ID,但仍然得到相同的错误。@Tanaike说,如果我创建一个名为“2019-6-20 Joe”的文件夹,并在其中插入一个名为“1”的图片文件。如果我像这样设置函数,那么我将在googlesheet->getFileUrl(fn,I){var fn=“Joe”;var I=“1”;(然后是函数的其余部分)}中获得一个有效链接;问题是驱动器不是基于目录的系统。当你运行脚本将文件上传到GoogleDrive时,它会返回文件的id,这样就足够获得我在之前的评论中提到的链接了。对不起,如果我没有正确地解决这个问题。嗨,安德烈斯。我已经按照前面提到的方式设置了函数,并得到如下错误代码::无法调用未定义的方法“GetFileByName”。/我很好奇。。。。当我将文件上传到驱动器中时,是否有任何方法可以获取文件ID(因此在Code.gs中使用uploadfiletologledrive函数),然后将ID返回给dostuf2?