我有一個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?