You are viewing the documentation for the 2.1.5 release in the 2.1.x series of releases. The latest stable release series is 2.4.x.
§ファイルアップロード
§フォームから multipart/form-data
形式でファイルをアップロードする
web アプリケーションにおけるファイルアップロードの標準的な方法は、multipart/form-data
エンコーディングのフォームを使うことです。multipart/form-data
を使うと、標準的なフォームデータに加えて、ファイルを添付データとして一緒に送信することができます。このフォームが使用する HTTP メソッドは (GET ではなく) POST でなければならないことに注意してください。
まず、 HTML フォームを書きます。
@form(action = routes.Application.upload, 'enctype -> "multipart/form-data") {
<input type="file" name="picture">
<p>
<input type="submit">
</p>
}
次に、 upload
アクションを定義します。
public static Result upload() {
MultipartFormData body = request().body().asMultipartFormData();
FilePart picture = body.getFile("picture");
if (picture != null) {
String fileName = picture.getFilename();
String contentType = picture.getContentType();
File file = picture.getFile();
return ok("File uploaded");
} else {
flash("error", "Missing file");
return redirect(routes.Application.index());
}
}
§ダイレクトファイルアップロード
サーバへファイルを送信する別の方法は、Ajax を活用してフォームからファイルを非同期的にアップロードするというものです。この方法では、リクエストボディは multipart/form-data
としてエンコードされず、単にファイルの内容を含むだけになります。
public static Result upload() {
File file = request().body().asRaw().asFile();
return ok("File uploaded");
}
次ページ: SQL データベースへのアクセス