如何在Play框架中上传文件?

时间:2013-09-26 10:38:57

标签: java playframework-2.0

我是新手玩框架2.0并希望在我的本地文件系统中上传文件。但我不知道如何开始这个。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

我们的表格

@form(action = routes.Application.upload, 'enctype -> "multipart/form-data") {
    <input type="file" name="picture">
    <p>
        <input type="submit">
    </p>
}

我们的上传操作

@BodyParser.Of(value = BodyParser.Text.class, maxLength = 10 * 1024)
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());    
  }
}

只需将maxLength = 10 * 1024(大约10kb)更改为您想要的长度,就可以在documentation

上找到更多相关信息。

如果您要通过Ajax发送文件。使用这个

public static Result upload() {
  File file = request().body().asRaw().asFile();
  return ok("File uploaded");
}

上面的响应将编码为Mutlipart/form-data,但只包含普通内容文件