使用Google Appscript / HTML服务将附件上传到Google网站

时间:2016-03-27 18:49:35

标签: google-apps-script google-sites

我目前正在使用带有HTML服务的appscript来填充电子表格并将一些文件上传到Google驱动器。这些文件是网址驱动器中网址不是图片链接的图片。图片链接仅适用于Google网站上的文件。所以我需要将其从上传到驱动器转换为上传到google站点文件柜页面上的文件夹。  我发现的所有信息都是:谷歌网站的附件正在使用我不感兴趣的UI应用程序。我想使用HTML服务。以下是我所拥有的功能齐全的内容:

服务器.gs

var dropBoxId = "blablahbalh"; // Drive ID of 'dropbox' folder
var logSheetId = "blahblahbalh"; // Drive ID of log spreadsheet

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

function uploadFiles(formObject) {
  try {
    // Create a file in Drive from the one provided in the form
   var folder = DriveApp.getFolderById(dropBoxId);
   var blob = formObject.myFile;
   var blob2 = formObject.myFile2;
   var file = folder.createFile(blob);
   var file2 = folder.createFile(blob2);
   file.setDescription("Uploaded by " + formObject.myName);

   // Open the log and record the new file name, URL and name from form
   var ss = SpreadsheetApp.openById(logSheetId);
   var sheet = ss.getSheets()[0];
   sheet.appendRow([file.getName(), file.getUrl(), file2.getName(),
   file2.getUrl(), formObject.myName, formObject.actor_unions,   formObject.actor_email, formObject.actor_phone, formObject.actor_website]);

// Return the new file Drive URL so it can be put in the web app output
return file.getUrl();
} catch (error) {
 return error.toString();
  }
 }

HTML

<form id="myForm">
 <input type="text" name="myName" placeholder="Your full name..."/>
  <input type="text" name="actor_unions" placeholder="Union affiliations..."/>
 <input type="text" name="actor_email" placeholder="email Address..."/>
 <input type="text" name="actor_phone" placeholder="phone number..."/>
 <input type="text" name="actor_website" placeholder="Website..."/>
 <input name="myFile" type="file" />
 <input name="myFile2" type="file" />
 <input type="button" value="Submit"
  onclick="google.script.run
      .withSuccessHandler(updateUrl)
      .withFailureHandler(onFailure)
      .uploadFiles(this.parentNode)" />
 </form>

  <div id="output"></div>

  <script>
   function updateUrl(url) {
       var div = document.getElementById('output');
    div.innerHTML = '<a href="' + url + '">Upload successful!</a>';
  }
  function onFailure(error) {
    alert(error.message);
  }
 </script>

 <style>
 input { display:block; margin: 20px; }
 </style>

1 个答案:

答案 0 :(得分:0)

目前无法使用AppScript将附件添加到Google网站的文件柜类型页面上的特定文件夹 - SitesApp service不会以任何方式公开任何方法来处理文件柜文件夹。< / p>

如果您只是将文件作为附件上传到特定网站页面而不将其放在文件夹中,那么代码就非常简单:

<div id="wrapper">
<div class="section section-left"></div>
<div class="section section-right"></div>
</div>

希望这有帮助!