makeCopy()函数从用户驱动器返回复制文件的URL和标题

时间:2019-03-06 14:01:55

标签: google-apps-script google-drive-api

我正在尝试为附件的用户返回URL和复制文件的标题,以便能够获取一些信息以及在创建附件后直接从附件打开文件的功能。复制。

我的Code.gs文件功能:

function createFileCopy(id){
  var file = id.split('.');
  var docName = DriveApp.getFilesByName(file[0]);
  while (docName.hasNext()) {
    var file = docName.next();
    var fileId = file.getId();
    var fileName = file.getName();
  }
  var sheet = TEMPLATES_DATA;
  var data = sheet.getRange(1, 9, sheet.getLastRow()-1, 1).getValues();

  var pos = data.map(function (obj) { return obj[0]; }).indexOf(id);

  if(pos > -1){
    var val = sheet.getRange("J" + (pos + 1)).getValue() + 1;
    var title = sheet.getRange("A" + (pos + 1)).getValue();
    sheet.getRange("J" + (pos + 1)).setValue(val);
  }

  return DriveApp.getFileById(fileId).makeCopy('Copy of '+title).getUrl();
}

我的javascript.html文件中的函数应在成功触发后如下

function fileCopySuccess(fileInfo){
    var content = '';
    if( fileInfo != null){
        content += '<h2>' + fileInfo['title'] + '</h2>';
        content += '<a class="button action" href="' + fileInfo['url'] + '" target="_blank">Open File</a>';
        $('#downloadBtn').html(content).removeClass('error');
    } else {
        $('#downloadBtn').html('');
    }
}

目前,我在undefinedtitle上都只得到URL

我确定必须在makeCopy()之后添加一些方法,以将数组传递给我的fileCopySuccess,但是不知道是什么,怎么做。

请帮助。

1 个答案:

答案 0 :(得分:1)

您应该从Google脚本函数返回JSON对象。

var newFile = DriveApp.getFileById(fileId).makeCopy('Copy of '+title);
return {
  title: title, 
  url: newFile.getUrl()
}