

gasで下記のコードで画像をbase64でエンコードしたものをデコードしblobで保存したいと思っています。

しかし7行目の`Utilities.base64Decode(data);`で「文字列をデコードできませんでした。」というエラーが出てしまいます。

他のbase64も試しましたが結果は変わりませんでした。

下記コードのbase64は[Wikipedia - Data URI
scheme](https://ja.wikipedia.org/wiki/Data_URI_scheme)から  
他には[Base64エンコーダー](https://lab.syncer.jp/Tool/Base64-encode/)のようなサービスでエンコードしたものを使用しました。

解決策や代替案があればよろしくお願いします。

[code]

    function writeFile() {  
      var drive = DriveApp.getFolderById('<< folder id >>');
      var fileName = 'sample.png';
      var contentType = 'image/png';
      var data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';  
    
      var decoded = Utilities.base64Decode(data);
    
      var blob = Utilities.newBlob(decoded, contentType, fileName)
    
      drive.createFile(blob);
    }
    
[/code]


CC BY-SA 3.0
2018-04-07T06:37:31.663
43029
2020-08-02T08:01:20.087
28059
question
javascript google-apps-script base64
Google Apps Scriptでbase64の画像を保存したい


変数 dataに代入しているBase64でエンコードされた文字列が間違っています。

最初の"data:image/png;base64,"を除いた文字列をbase64Decodeの引数にすればOKだと思います。


CC BY-SA 3.0
2018-04-08T03:19:35.890
43049
2018-04-08T03:19:35.890
217
43029
answer