|
||||||||||||||||||||||
|
Google App Engine でのファイルアップロードHTML フォームからファイルをアップロードするには、通常次のようなフォームを利用しますよね。 <form action="..." method="POST" enctype="multipart/form-data"> <input type="file" name="file1"> <input type="submit" value="Upload"> </form> ポイントは FORM タグの action にアップロード先 URL を設定、enctype として multipart/form-data、そして、 ファイルの指定は INPUT タグの type 属性に file を指定します。 これは Google App Engine に限ったことではないのでご存知の方も多いと思います。 Google App Engine のファイルアップロードでも、これをベースにしています。 Google App Engine でのファイルアップロードファイルをアップロードして保存する先はブロブストア (blobstore) です。 アップロードされたファイルはブロブストアに保存され、ひとつひとつのアップロードファイルが、ブロブストア内のブロブとして識別されます。 ブロブを識別するキーは、ブロブキー (BlobKey) です。 アップロード先 URL の取得ブロブストアにアップロードする、と言いましたが、具体的な URL がないと action 属性が書けません。 アップロード先 URL を取得するには、BlobstoreService の createUploadUrl() メソッドを呼びます。 これで取得された URL を action 属性に設定すればアップロードは完了します。 アップロード完了後、createUploadUrl メソッドのパラメータに指定した URL にフォワードされます。 具体例で説明します。次のコードを見てください。 <% String uploadUrl = blobstoreService.createUploadUrl("/upload"); %> <html> <body> <form action="<%= uploadUrl %>" method="POST" enctype="multipart/form-data"> ここでは、"/upload" という文字列を createUploadUrl メソッドに渡して、アップロード先 URL (uploadUrl) を取得しています。 こうすると、ファイルをアップロードすると、まずブロブストアにファイルがブロブとして格納され、 その後に "/upload" へフォワードされます。 フォワード先の "/upload" では、ブロブキーを取り出すことができ、それを用いていろいろと次なる処理ができるわけです。 アップロードフォーム例以上から、ファイルをアップロードするためのフォームは次のように作ることができます。 <%@page import="com.google.appengine.api.blobstore.BlobstoreServiceFactory" %> <%@page import="com.google.appengine.api.blobstore.BlobstoreService" %> <% BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); String uploadUrl = blobstoreService.createUploadUrl("/upload"); %> <html> <body> <form action="<%= uploadUrl %>" method="POST" enctype="multipart/form-data"> <input type="file" name="file1"> <input type="submit" value="Upload"> </form> </body> </html> さて、作成されたブロブにはどのようにアクセスするのでしょうか。 その点については、「Google App Engine でのファイルアップロード ~ ブロブの取得」 を見てください。 |
|
||||||||||||||||||||
|
© 2010-2011 Google App Engine 入門 |
||||||||||||||||||||||