如何在google app脚本上将jpg或png转换为blob?

时间:2017-02-02 04:45:34

标签: google-apps-script blob

我想http将html格式的图片发布到谷歌应用脚​​本网络应用,然后将该图片添加到谷歌硬盘。

我的应用程序脚本如下。

function doPost(e){
  var date = new Date();
  var timestamp = date.toString()
  var adress = e.parameter.adress;
  var cost = e.parameter.cost;
  var item = e.parameter.item;
  var check = e.parameter.image;

  //add file to drive
  var destination_id = "some ID"
  var destination = DriveApp.getFolderById(destination_id);
  destination.createFile(check);
};

执行时,会返回错误; cannot find method: createFile(String)

我认为这是因为"检查"是一个字符串,我想将提交的图像转换为Blob。 我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

以下样本怎么样?添加了“getAs()”。 https://developers.google.com/apps-script/reference/drive/file#getAs(String)

这是我用于此测试的非常简单的html和gas脚本。

HTML:此文件名为“form.html”。

<form>
  <input type="file" name="imageFile">
  <input type="button" value="ok" onclick="google.script.run.upload(this.parentNode)">
</form>

GAS脚本:

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

function upload(e) {
  var destination_id = "some ID";
  var img = e.imageFile;
  var contentType = "image/jpeg";
  var destination = DriveApp.getFolderById(destination_id);
  var img = img.getAs(contentType);
  destination.createFile(img);  
}

对于此示例脚本,如果要保存为jpeg文件,请将'contentType'从'image / png'更改为'image / jpeg'。当您为'image / jpeg'的contentType上传png文件时,png文件将被'getAs()'转换为jpeg文件。