【问题标题】:app script file upload return file url to Html pageapp脚本文件上传返回文件url到Html页面
【发布时间】:2019-12-30 23:38:52
【问题描述】:

我已修改此脚本以将文件上传到我的 Google 驱动器中的文件夹。但我还需要它将上传文件的 url 链接返回到跨度或表单字段。

我无法让它返回 url 链接。

到目前为止,这就是我的代码的样子。

    <!DOCTYPE html>
    <html>
     <head>
   <base target="_top">
    </head>
   <body>

 <form>
 <label>INCLUIR IMAGEM</label><input type="file" accept="image/*" capture="camera" name="imageFile"/>

   <!-- <input type="file" name="imageFile">-->
  <input type="button" value="Upload File" 
    onclick="google.script.run.withSuccessHandler(updateUrl).upload(this.parentNode)">
     </form><br/><br/>
         <div id="output"></div>
          </body>
          </html>




<script>
  function updateUrl(imageUrl) {
  var div = document.getElementById('output');
  div.innerHTML = '<span>' + imageUrl +'</span>';
  }
  </script>

代码.gs

function upload(e) { 
 // Folder ID of destination folder
 var destination_id = '1qghuk1-kShw8NMJLhzmRGJJwM-dHVJ5t';
 var contentType = 'image/jpeg'; 
 var imageUrl = e.imageFile;
 var destination = DriveApp.getFolderById(destination_id);
 destination.createFile(imageUrl);
 var folder = destination.next();
 var files = folder.getFiles(); 
if (files.hasNext()) {
  // For this test, use first found file
  var file = files.next();
  var imageUrl = Drive.Files.get(file.getId()).webContentLink;


Logger.log(imageUrl);
return imageUrl;  


 }

 }

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:
    • 您要检索上传文件的webContentLink

    如果我的理解是正确的,那么这个修改呢?我认为你的HTML端的脚本是正确的。

    发件人:

    destination.createFile(imageUrl);
    var folder = destination.next();
    
    var files = folder.getFiles(); 
    if (files.hasNext()) {
      // For this test, use first found file
      var file = files.next();
      var imageUrl = Drive.Files.get(file.getId()).webContentLink;
    
    
    Logger.log(imageUrl);
    return imageUrl;  
    
    
     }
    

    收件人:

    var file = destination.createFile(imageUrl);
    var imageUrl = Drive.Files.get(file.getId()).webContentLink;
    Logger.log(imageUrl);
    return imageUrl;
    

    或者,如果你不需要使用Drive API,那么下面的修改如何?

    收件人:

    var file = destination.createFile(imageUrl);
    return "https://drive.google.com/uc?export=download&id=" + file.getId();
    

    参考:

    如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

    【讨论】:

    • 完美,正是我所需要的。谢谢
    • @user2916405 感谢您的回复。很高兴您的问题得到解决。
    猜你喜欢
    • 2015-05-13
    • 2022-11-17
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 2011-07-18
    • 1970-01-01
    相关资源
    最近更新 更多