在Playframework 2.2中,可以从请求中绑定实体,如下所示:
Form<EntityA> form = form.bindFromRequest();
EntityA entity = filledForm.get();
它似乎适用于String值,但是当我在实体中有一个文件并使用@inputFile表示法时,它似乎不起作用。
我可以通过多部分表单数据读取文件:
MultipartFormData body = request().body().asMultipartFormData();
FilePart picture = body.getFile("uploadedFile");
但这并不优雅,因为我需要通过多部分表单数据读取文件,并通过bindFromRequest读取其他字段。
我想做这样的事情:
Form<EntityA> form = form.bindFromRequest();
EntityA entity = filledForm.get();
File file = entity.uploadedFile;
但是当字段是文件时,只返回null。
我们如何将文件上传到表单并直接从绑定表单而不是多部分表单数据中获取?
谢谢。
答案 0 :(得分:1)
如果您的表单包含实体和文件,您可以使用以下方法解决它:How to get the upload file with other inputs in play2?
如果您可以操作POST方法,请不要将@inputFile用于实体。否则,如果要绑定的是@inputFile本身,则需要使用任何编组/解组合方法。