我想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。 我怎么能这样做?
答案 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文件。