2012 年 7 月 22 日 日曜日
▼サンプルスクリプト
サイトに貼り付けたファイルアップロードフォーム(Google Apps Script UiAppにより作成)から、指定したページにファイルをアップロードするサンプルスクリプト。
function doGet() {
var app = UiApp.createApplication();
var form = app.createFormPanel().
setTitle('ファイルアップロード').
setEncoding('multipart/form-data');
app.add(form);
form.add(
app.createHorizontalPanel().add(
app.createFileUpload().setName('sample').setId('sample')
).add(
app.createSubmitButton('アップロード')
));
return app;
}
function doPost(e){
var app = UiApp.getActiveApplication();
try{
var filePage = SitesApp.
getPageByUrl("https://sites.google.com/xxxxxxx");
var uploaded;
if (e.parameter.sample.length > 0){
var uploaded = filePage.
addHostedAttachment(e.parameter.sample);
app.add(app.createLabel('upload completed.'));
} else {
app.add(app.createLabel('no input file specified.'));
}
} catch (error){
app.add(app.createLabel('error'));
}
return app;
}
行2 | UiApp.createApplication() により、Uiのインスタンスを生成している。 |
---|---|
行3- 行5 |
createFormPanel() により、フォームパネルを生成している。フォームパネルはHTMLの<form>に相当し、SubmitButtonとあわせて利用される。setEncoding('multipart/form-data') としているが、これはHTMLでファイル送信フォームを作成するのと同じく、特別な形式でPOST送信を行う必要がある。 |
行9 | {Uiインスタンス}.createFileUpload() は、レンダリング時に<input type = “file”>に展開される。また、続けて記載しているsetName('sample') は<input>のname属性となり、POST送信時にe.parameter.sample で値を読み取ることができる。 |
行20 | getPageByUrl(url) でパラメータで指定したUrlのページオブジェクトを取得している。今回ファイルをアップロードする対象となるページ。 |
行24 | {ページ}.addHostedAttachment(Blob) により、Blob(バイナリデータ)を{ページ}にアップロードすることができる。 |
addHostedAttachment(blob)
addHostedAttachment(blob, description)
このエントリーのトラックバックURL:
http://www.bmoo.net/archives/2012/03/313608.html/trackback