Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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工作表的图像URL_Javascript_Image_Google Apps Script_Google Sheets_Google Drive Api - Fatal编程技术网

Javascript 根据文件名从Google Drive获取到Google工作表的图像URL

Javascript 根据文件名从Google Drive获取到Google工作表的图像URL,javascript,image,google-apps-script,google-sheets,google-drive-api,Javascript,Image,Google Apps Script,Google Sheets,Google Drive Api,你好 我正在尝试访问谷歌硬盘,并从网络应用程序获取基于个人资料编号的特定图像文件。例如,如果我在web应用程序上输入一个配置文件编号和详细信息,提交后,它会将详细信息附加到google工作表上,我尝试在google Drive中搜索图像,并将其URL放在最后一列 以下是我的html代码: <body> <!-- CONTAINER --> <div class="container-md"> <!-- H

你好

我正在尝试访问谷歌硬盘,并从网络应用程序获取基于个人资料编号的特定图像文件。例如,如果我在web应用程序上输入一个配置文件编号和详细信息,提交后,它会将详细信息附加到google工作表上,我尝试在google Drive中搜索图像,并将其URL放在最后一列

以下是我的html代码:

  <body>
    <!-- CONTAINER -->
    <div class="container-md">

    <!-- HEADING -->
    <h3 style="color:green;">User Data</h3>

    <!-- CONTENT -->
    <div class="form-row">
    <div class="form-group col-md-2">
    <input id="rnum" class="form-control" type="text" placeholder="Profile Number" pattern="^\d{5}$" required>
    </div>
    </div>
    <!-- FULL NAME -->
    <div class="form-row">
    <div class="form-group col-md-3">
    <input id="fname" class="form-control" type="text" placeholder="First Name" required>
    </div>
    <div class="form-group col-md-3">
    <input id="mname" class="form-control" type="text" placeholder="Middle Name" required>
    </div>
    <div class="form-group col-md-3">
    <input id="lname" class="form-control" type="text" placeholder="Last Name" required>
    </div>
    </div> <!-- CLOSE ROW: FULL NAME-->
      <div class="form-row">
      <button id = "btn" type="submit" class="btn btn-primary">Submit</button>
      </div>
    </div>  <!-- CLOSE CONTAINER -->     
  </body>
</html>

到目前为止,我只能得到谷歌硬盘文件夹中所有图像的文件名。我仍然在寻找如何根据个人资料号码获取图像URL的方法。非常感谢您的帮助和输入。

如果
配置文件编号
DriveApp.getFoldersByName(“用户图像”)文件夹中图像的文件名。下一步()
并且每个文件名都是唯一的文件名,那么下面的修改如何

发件人: 致:
  • 在此修改中,将创建一个用于搜索URL的对象,并使用该对象放置URL
注:
  • 在这种情况下,我的理解如下。
    • 配置文件编号
      是图像的文件名
    • 每个文件名都是唯一的文件名

如果以上我的理解不正确,你能提供你的情况的详细信息吗?在此,我想修改脚本。

谢谢。是的,每个文件名都是唯一的。成功了。非常感谢您的回复。@Glenn Perey谢谢您的回复。我很高兴你的问题解决了。
<script>
document.getElementById("btn").addEventListener("click",submitBtn);
    
    function submitBtn(){
       var myInfo={};
       
       myInfo.profile = document.getElementById("rnum").value;
       myInfo.firstName = document.getElementById("fname").value;
       myInfo.midName = document.getElementById("mname").value;
       myInfo.lastName = document.getElementById("lname").value;
       
       google.script.run.addInfo(myInfo);
       
       document.getElementById("rnum").value = "";
       document.getElementById("fname").value = "";
       document.getElementById("mname").value = "";
       document.getElementById("lname").value = "";
       
    }
</script>
function addInfo(myInfo){
   const ss = SpreadsheetApp.openByUrl(url);
   const ws = ss.getSheetByName("User_Info");
  
   const imgFolder = DriveApp.getFoldersByName("User Image").next();
   const imgIterator = imgFolder.getFiles();
   
   var imgArr = [];

   while(imgIterator.hasNext()){
    var imgFile = imgIterator.next();
    var imgUrl = imgFile.getName();
     imgArr.push(imgUrl);
   }

   ws.appendRow([
     myInfo.profile, 
     myInfo.firstName, 
     myInfo.midName, 
     myInfo.lastName
     //Image URL
   ]);
}
var imgArr = [];

while(imgIterator.hasNext()){
 var imgFile = imgIterator.next();
 var imgUrl = imgFile.getName();
  imgArr.push(imgUrl);
}

ws.appendRow([
  myInfo.profile, 
  myInfo.firstName, 
  myInfo.midName, 
  myInfo.lastName
  //Image URL
]);
var imgObj = {};
while(imgIterator.hasNext()){
  var imgFile = imgIterator.next();
  imgObj[imgFile.getName()] = imgFile.getUrl();
}
ws.appendRow([
  myInfo.profile,
  myInfo.firstName,
  myInfo.midName,
  myInfo.lastName,
  imgObj[myInfo.profile]
]);