Cyril N.
Cyril N.

Reputation: 39889

How to send base64 encoded file to PlayFramework server?

I'd like to implement a FileUpload using the new FileReader API. From the client side, everything works well and I can send a PUT request to the server with the correct fields containing the file in Base64 encoded.

But in the server side, it's not going great, here are my results :

Logger.info(String.valueOf(request().body().asRaw())); // null
Logger.info(String.valueOf(request().body().asText())); // null

And most importantly :

Logger.info(String.valueOf(request().body().isMaxSizeExceeded())); // true !

What am I missing? How can I make it work?

Upvotes: 2

Views: 691

Answers (1)

Cyril N.
Cyril N.

Reputation: 39889

I found the answer to my question !

For those who are looking for it, here's the answer :

You need to add a BodyParser as annotation for your method, and specify a higher maxLength value.

@BodyParser.Of(value = BodyParser.Json.class, maxLength = 1024 * 1024)
public static Result method() {
    Logger.info(String.valueOf(request().body().asJson())); // Will not be empty!
}

Upvotes: 4

Related Questions