【问题标题】:I want to upload img from local to drive and save url in sheet我想将图像从本地上传到驱动器并将 url 保存在工作表中
【发布时间】:2020-08-16 05:28:32
【问题描述】:

我想将 img 从本地上传到驱动器并将 url 保存在工作表中 我使用此代码将 img 上传到驱动器,但现在我想获取 url 并保存在 spadsheet 中


此应用脚本的 gs 代码可以帮助任何人获取 url 并停止应用脚本完整页面 我将从本地 html 运行它,请帮助我

    function doGet(e) {
  return message("Error: no parameters");
}

function doPost(e) {
   var template = HtmlService
                 .createTemplateFromFile('ModalForm');

  var htmlOutput = template.evaluate()
                   .setSandboxMode(HtmlService.SandboxMode.NATIVE)
                   .setTitle('done ');
  if (!e.parameters.filename || !e.parameters.file || !e.parameters.imageformat) {
    return message("Error: Bad parameters");
    
  } else {
    var imgf = e.parameters.imageformat[0].toUpperCase();
    var mime =
        (imgf == 'BMP')  ? MimeType.BMP
      : (imgf == 'GIF')  ? MimeType.GIF
     : (imgf == 'JPEG') ? MimeType.JPEG
     : (imgf == 'PNG')  ? MimeType.PNG
      : (imgf == 'SVG')  ? MimeType.SVG
      : false;
    if (mime) {
      var data = Utilities.base64Decode(e.parameters.file, Utilities.Charset.UTF_8);
      var blob = Utilities.newBlob(data, mime, e.parameters.filename);
    var as=  DriveApp.getFolderById('1myWqX4qCtsFYOPvTl9vT7Xa1inzAG6Rc').createFile(blob);
Logger.log(as.getUrl());
    }
    else {
      return message("Error: Bad image format");
    }
  }
}
...

【问题讨论】:

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


    【解决方案1】:

    解决方案

    您可以参考this answer 来构建一个上传“PNG”的有效解决方案。根据需要更改mimetype

    建议修改

    // Code.gs
    function doGet(e) {
      return message("Error: no parameters");
    }
    
    function doPost(e) {
      if (!e.parameters.filename || !e.parameters.file) {
        return message("Error: Bad parameters");
      } else {
        var data = Utilities.base64Decode(e.parameters.file, Utilities.Charset.UTF_8);
        var blob = Utilities.newBlob(data, MimeType.PNG, e.parameters.filename);
        var file = DriveApp.getFolderById('1myWqX4qCtsFYOPvTl9vT7Xa1inzAG6Rc').createFile(blob);
        var url = file.getUrl();
        var sheet = SpreadsheetApp.openById("your-spreadsheet-id").getSheetByName("sheet-name");
        sheet.appendRow([url]);
        return message("completed");
      }
    }
    
    function message(msg) {
      return ContentService.createTextOutput(JSON.stringify({result: msg})).setMimeType(ContentService.MimeType.JSON);
    }
    

    参考

    MIME Types

    SpreadsheetApp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 2018-07-29
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      • 2014-06-25
      相关资源
      最近更新 更多