【问题标题】:in Google Apps Script, how to create a file by bytes?在 Google Apps 脚本中,如何按字节创建文件?
【发布时间】:2015-09-22 16:34:17
【问题描述】:

与我之前的问题How to reconstruct a blob for an image from a binary string (client side hidden form field) in Google Apps Script 相关,我进一步挖掘并意识到我的关键问题是如果我确切知道文件每个字节的值,如何在 Google Drive 中创建文件?

DriveApp.createFile 函数接受 blob,但如果我想创建一个每个字节为 0x89,0xFF,0x99,... 的文件,我不确定从哪里开始?

【问题讨论】:

    标签: javascript google-apps-script


    【解决方案1】:

    我之前没有尝试过,但请检查 Utilities.newBlob() 函数。

    如果您在表单中对数据进行 Base64 编码,也许您可​​以完全避免该问题,然后您可以在其上使用 Utilities.base64Decode() 并将其传递给 newBlob()。

    获得 Blob 后,您应该能够使用 DriveApp.createFile()。

    https://developers.google.com/apps-script/reference/utilities/utilities#newBlob(Byte)

    https://developers.google.com/apps-script/reference/utilities/utilities#base64Decode(String)

    【讨论】:

    • 我一直在尝试这两个功能都没有成功。 blob=Utilities.newBlob(Utilities.base64Decode(form.summaryImage)); blob.setName('A.PNG'); DriveApp.createFile(blob.getAs('image/png'));这会创建一个包含四个字母“Blob”的文件......我错过了什么吗?
    • 如果你得到一个包含单词“Blob”的文件,那么它正在使用 Blob 对象的字符串表示形式创建文件。不知道为什么会这样,您是否尝试过不使用 blob.getAs(),并且只是通过了 blob?也许尝试备用 createFile: createFile("A.PNG",blob,"image/png");并且根本不要在 blob 上调用 setName。
    • 我认为我遇到的实际问题是以正确的 Base64 格式获取数据。我最初的问题stackoverflow.com/questions/32707715/… 的答案有所帮助。只需要将原始数据编码为正确的 Base64。但是我仍然不清楚如何从二进制字节值列表中创建一个 Byte[] 或 Base64 对象....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多