Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2019年6月13日木曜日

ファイルを指定フォルダに追加したい(UI)


Google ドライブのファイルは複数のフォルダに入れておくことができます

ここでは指定したフォルダにファイルを「追加」するUIを作ります

「移動」ではないため、元のフォルダにもファイルは残ります






コード.gs
function doGet() {
  return HtmlService.createHtmlOutputFromFile('index');
}

function addFileToFolder(file_id, folder_id) {
  var folder = DriveApp.getFolderById(folder_id);
  var file = DriveApp.getFileById(file_id);
  folder.addFile(file);
}

意訳
この機能がやること
指定したHTMLファイルを表示する


この機能がやること
Googleドライブ内でfolder_idのフォルダを取得して
file_idのファイルを取得して
フォルダに追加する





index.html
<!DOCTYPE html>
<html>
  <body>
    Add file to target folder<br>
    <input type="text" id="file_url"> FILE URL<br>
    <input type="text" id="folder_url"> FOLDER URL<br>
    <button id="bt">Add</button><br>
    <a id="folder_link" target="_blank"></a>
    
    <script>
    elem('bt').onclick = btClicked;
    
    function elem(id) {
      return document.getElementById(id);
    }
    
    function btClicked() {
      elem('folder_link').textContent = '';
      var file_url = elem('file_url').value;
      var folder_url = elem('folder_url').value;
      
      var file_id = file_url.split('/d/')[1].split('/')[0];
      var folder_id = folder_url.split('/folders/')[1];
      
      google.script.run
      .withFailureHandler(onFailure)
      .withSuccessHandler(onSuccess)
      .withUserObject(folder_url)
      .addFileToFolder(file_id, folder_id);
    }
    
    function onSuccess(result, folder_url) {
      elem('folder_link').href = folder_url;
      elem('folder_link').textContent = folder_url;
    }

    function onFailure(e) {
      alert([e.message, e.stack]);
    }
    </script>
  </body>
</html>



Latest post

Google Apps Scriptの障害時はIssueTrackerを見てみる - Incidents for Apps Script are reported on Issue Tracker

IssueTracker > Apps Script issues https://issuetracker.google.com/savedsearches/566234 Google Apps Scriptの障害時は IssueTracker に課題が上がっていることが...