ファイルのアップロード
multipart / form-dataを含むファイルをフォームにアップロードする
Webアプリケーションでは、標準のアップロードファイルはmultipart / form-dataでエンコードされたフォームであり、添付ファイルの形式でフォームデータを混在させることができます。このようなフォームのHTTPメソッドの場合、POSTで送信する必要があることに注意してください
1.ルートファイルを開き、POST / uploadcontrollers.UserControl.upload()を追加します
2. UserControl.javaに、次のように追加します。
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();
System.out.println("filename:"+filename+",contentType:"+contentType);
return ok("File load");
}else{
flash("error","Miss file");
return redirect(routes.Application.index());
}
}
3. form.scala.htmlを開いて、参加します
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="picture">
<p>
<input type="submit">
</p>
</form>
ファイルの直接アップロード
ファイルをアップロードする別の方法は、ajaxを使用してフォームから非同期にファイルをアップロードすることです。この場合、要求された本文はMultipart / form-dataとしてエンコードされず、プレーンテキストファイルのコンテンツのみが含まれます。
public static Result upload() {
File file = request().body().asRaw().asFile();
return ok("File uploaded");
}