2016-05-20 32 views
2

doPost(e)を使用してGoogle Web Appにファイルをアップロードしようとしています(下の図を参照)。doPostを使用してGoogle Web Appsにファイルをアップロードする

function doPost(e) { 
    var blob = e.parameter.myFile; 
    DriveApp.createFile(blob); 
} 

ファイルがクライアント側のWebアプリケーションにPOSTされます。 POSTは自分のWebサーバーで正しく動作することが証明されています。

しかし、上記のコードのblob変数は、実際にはBlob型ではなく、文字列型です。 Googleスクリプトエンジンはパラメータeをどのように準備しますか?この仕事をする方法はありますか?

+0

は 'Utilities.newBlob(文字列)'使用してみてください[https://developers.google.com/apps-script/reference/utilities /utilities#newblobdata_3](https://developers.google.com/apps-script/reference/utilities/utilities#newblobdata_3) –

+0

Thanks Sandy。私はそれを試みた。しかし、作成されたファイルは元のサイズの約2倍です。ここにコードです: – user2106007

+0

しかし、アップロードされたファイルの内容は同じではなく、サイズははるかに大きいです。私はGoogleのスクリプトエンジンは、元のデータを保存していないと思いますか?それがどのように準備されているか分かっていれば、元の内容を得るために何かできることがあります。 – user2106007

答えて

1

私はここで同じ問題を抱えています。 FileReader()を使用してファイルをBase64文字列に変換してアップロードし、Googleドライブに送信する前にサーバー側で元に戻すことで回避できます。ここで

を使用して、ファイルやdecode、それをサーバー側のencodeする方法のユーティリティAPI

+0

私はこれが遅いことを知っていますが、あなたの答えに感謝します。 – user2106007

関連する問題