私はGoogle Apps Scriptを利用する最初のアプリケーションを構築中です。 Googleドキュメントリストにファイルをアップロードするためのフォームが必要です。FormPanelを使用しないGoogle Apps Script FileUpload()
function doGet(e) {
var app = UiApp.createApplication().setTitle("Upload CSV to Sheet");
var form = app.createFormPanel().setId('frm').setEncoding('multipart/form-data');
var formContent = app.createVerticalPanel();
form.add(formContent);
formContent.add(app.createFileUpload().setName('thefile'));
formContent.add(app.createSubmitButton('Submit'));
app.add(form);
return app;
}
function doPost(e) {
// data returned is a blob for FileUpload widget
var fileBlob = e.parameter.thefile;
var doc = DocsList.createFile(fileBlob);
app.close();
return app;
}
しかし、私はSubmitボタンのための私自身のクリックハンドラを指定し、可能な場合は、POSTを待たずしたい:私は現在Google Apps Script FileUpload docmentationに基づいて、この作業を使用してコードを持っています。上記のコードをこのように変更しようとしたとき、e.parameter.thefileへの参照はnullであり、ファイルblobは含まれていません。
function doGet(e) {
var app = UiApp.createApplication().setTitle("Upload CSV to Sheet");
var formContent = app.createVerticalPanel();
var submitServerHandler = app.createServerClickHandler('submitHandler_');
formContent.add(app.createFileUpload().setName('thefile'));
submitServerHandler.addCallbackElement(formContent);
formContent.add(app.createButton('Submit').addClickHandler(submitServerHandler));
app.add(formContent);
return app;
}
function submitHandler_(e) {
// data returned is a blob for FileUpload widget
var fileBlob = e.parameter.thefile;
var doc = DocsList.createFile(fileBlob);
app.close();
return app;
}
FormPanelなしでFileUploadコントロールを使用することはできますか?もしそうなら、どうですか?ありがとう!
この質問は、DocsListのような廃止されたクラスを使用しています。 –