Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将添加到Google Drive的图片链接插入Google工作表_Javascript_Html_Google Apps Script_Web Applications - Fatal编程技术网

Javascript 将添加到Google Drive的图片链接插入Google工作表

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

这是已在此处解决的问题的第二部分:

我正在开发一个web应用程序,用户可以通过点击按钮上传图片。此操作将使用唯一的文件夹和名称将图片上载到我的google drive中的某个目录中

现在,我正试图在上传图片的任何时候复制并粘贴图片的谷歌驱动链接

在@Tanaike的帮助下,当我在“Code.gs”中的getFileUrl(fn,I)函数中预先分配了文件夹名(fn)和图片标题(I)的一部分时,我能够从google drive将url链接到google工作表中。但每当我试图传递用户输入“fn”和“I”时,我就会得到这个“TypeError:无法调用未定义的”方法“getFilesByName”


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?