在 Google 应用程序脚本中将图像保存到文档属性
save an image to document properties in Google App Script
目前,我正在从 HTML 格式卸载图像文件,并使用以下代码将其转换为 base64:
fileImput.addEventListener("change", function() {
if (file = this.files[0]) {
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function() {
var base64String = reader.result;
}
}
我将 base64String 传递给服务器并将其保存在文档的属性中。
到此为止,一切都很完美。问题是我需要将该图像文件包含在使用 blob 格式包含图像的电子邮件中,以及 HTML 形式中,使用 base64 格式。为了更复杂,我从 Drive 获取了一些图像文件,并通过以下方式获取文件的 blob:
driveFile.getBlob();
我找不到任何方法在应用程序脚本中将 base64 转换为 blob,反之亦然。
另外,我希望能完全理解 blob 格式。如果您能给我一些好的文档,我将不胜感激。
我相信你的目标如下。
- 您想从
driveFile.getBlob()
的 Blob 转换为 base64 数据。
- 您想将 base64 数据转换为
driveFile.getBlob()
的 Blob。
- 您正在使用 Google Apps 脚本。
1。从 Blob 转换为 base64。
const blob = DriveApp.getFileById("### fileId ###").getBlob();
const base64 = Utilities.base64Encode(blob.getBytes());
- 可以使用
Utilities.base64Encode()
. 从字节数组转换Base64数据
- 在这种情况下,base64数据没有header。所以当你想使用这个数据作为数据URL时,请像
data:[<mediatype>][;base64],<data>
一样添加header。 Ref
2。从 base64 转换为 Blob。
const base64 = "###";
const blob = Utilities.newBlob(Utilities.base64Decode(base64), "### mimeType ###", "### filename ###");
- 使用
Utilities.base64Decode()
转换base64数据时,返回字节数组。为了将其转换为 blob,使用 Utilities.newBlob()
。在这种情况下,可以包括 mimeType 和文件名。
参考文献:
目前,我正在从 HTML 格式卸载图像文件,并使用以下代码将其转换为 base64:
fileImput.addEventListener("change", function() {
if (file = this.files[0]) {
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function() {
var base64String = reader.result;
}
}
我将 base64String 传递给服务器并将其保存在文档的属性中。
到此为止,一切都很完美。问题是我需要将该图像文件包含在使用 blob 格式包含图像的电子邮件中,以及 HTML 形式中,使用 base64 格式。为了更复杂,我从 Drive 获取了一些图像文件,并通过以下方式获取文件的 blob:
driveFile.getBlob();
我找不到任何方法在应用程序脚本中将 base64 转换为 blob,反之亦然。
另外,我希望能完全理解 blob 格式。如果您能给我一些好的文档,我将不胜感激。
我相信你的目标如下。
- 您想从
driveFile.getBlob()
的 Blob 转换为 base64 数据。 - 您想将 base64 数据转换为
driveFile.getBlob()
的 Blob。 - 您正在使用 Google Apps 脚本。
1。从 Blob 转换为 base64。
const blob = DriveApp.getFileById("### fileId ###").getBlob();
const base64 = Utilities.base64Encode(blob.getBytes());
- 可以使用
Utilities.base64Encode()
. 从字节数组转换Base64数据
- 在这种情况下,base64数据没有header。所以当你想使用这个数据作为数据URL时,请像
data:[<mediatype>][;base64],<data>
一样添加header。 Ref
2。从 base64 转换为 Blob。
const base64 = "###";
const blob = Utilities.newBlob(Utilities.base64Decode(base64), "### mimeType ###", "### filename ###");
- 使用
Utilities.base64Decode()
转换base64数据时,返回字节数组。为了将其转换为 blob,使用Utilities.newBlob()
。在这种情况下,可以包括 mimeType 和文件名。