我使用 google.script.run 在Google应用程序脚本中使用 MailApp API ,并且传递这样的邮件对象:
google.script.run.sendMail(mail);
邮件对象的结构如下:
var mail = {
to:"",
cc:"",
subject:"",
htmlBody:"",
inlineImages: inlineImages
}
inlineImages 是一个Javascript对象,可将{strong>字符串映射到google ressources
中的图像数据(BlobSource)但是随后我在 inlineImages 中传递了 File 对象,我得到由于非法值而失败。
编辑:
我得到 inlineImages 像这样:
var inlineImages
function createImages(event) {
var file = event.target.files[0];
var key = "image"+Object.keys(inlineImages).length;
inlineImages[key] = file;
}
我也尝试获取Image对象:
function createImages(event) {
var file = event.target.files[0];
var key = "image"+Object.keys(inlineImages).length;
var reader = new FileReader();
reader.onload = function(e) {
var img = new Image();
img.src = e.target.result;
inlineImages[key] = img;
}
reader.readAsDataURL(file);
}
答案 0 :(得分:0)
let a;
let b = 22;
let c = null;
let d = {
'a': 22,
'b': [4,5,6]
};
console.log(a); // undefined
console.log(a.b); // TypeError: Cannot read property 'b' of undefined
console.log(b); // 22
console.log(b.c); // undefined
console.log(c); // null
console.log(d.a); // 22
console.log(d.b); // [4,5,6]
console.log(e); // ReferenceError: e is not defined
不是合法值。
法律参数和返回值是JavaScript原语,例如a
+数字,
+布尔值,
+字符串,或
+ null,以及
+由原语,对象和数组组成的JavaScript对象和数组。
+页面中的表单元素作为参数也是合法的,但它必须是函数的唯一参数,并且作为返回值是不合法的
要通过文件从客户端到服务器通过上述限制,获取文件的唯一方法是将fileObject转换为上述类型之一。我将使用表单:
如果您使用表单元素作为参数调用服务器函数,则表单将成为单个对象,其中字段名作为键,而字段值作为值。这些值都将转换为字符串,但文件输入字段的内容除外,这些内容成为 Blob 对象。