我有一个Windows Phone 8的客户端,使下面的POST请求请求它自动作为“multipart/form-data”请求。多文件上传和JSON对象在游戏框架一个POST请求
在玩2.1的上传操作的控制器如下:
@BodyParser.Of(BodyParser.Json.class)
public static Result createMessage() {
JsonNode json = request().body().asJson();
ObjectNode result = Json.newObject();
String userId = json.findPath("userId").getTextValue();
String rayz = json.findPath("message").getTextValue();
Http.MultipartFormData body = request().body().asMultipartFormData();
Http.MultipartFormData.FilePart picture = body.getFile("picture");
if (picture != null) {
String fileName = picture.getFilename();
String contentType = picture.getContentType();
File file = picture.getFile();
result.put("status", "success");
result.put("message", "Created message!");
return badRequest(result);
} else {
result.put("status", "error");
result.put("message", "Message cannot be created!");
return badRequest(result);
}
}
注意,在application.conf我已成立,以增加大小限制(似乎不工作)以下内容:现在
# Application settings
# ~~~~~
parsers.text.maxLength=102400K
,每次我试图使POST请求我注意到对IsMaxSizeEsceeded变量调试时间总是真实的多变量为空。当我试图使用下面的控制器上传一个文件nu时,一切似乎都正常工作。大小不是问题,并设置了多部分变量。
public static Result singleUpload() {
ObjectNode result = Json.newObject();
Http.MultipartFormData body = request().body().asMultipartFormData();
Http.MultipartFormData.FilePart picture = body.getFile("picture");
if (picture != null) {
String fileName = picture.getFilename();
String contentType = picture.getContentType();
File file = picture.getFile();
result.put("status", "success");
result.put("message", "File uploaded!");
return badRequest(result);
} else {
result.put("status", "error");
result.put("message", "File cannot be uploaded!");
return badRequest(result);
}
}
的问题是,附件/文件应该被发送/与JSON对象到服务器沿着在单个POST请求上传和未单独。
有没有人遇到过类似的问题?是否有可能实现这一点 - 发送一个json对象和多个文件上传到服务器在一个POST请求与Play 2.1?