PlayFramework 2.4.6 Fehler 413 Request Entity Too Large
Bin ich mit dem PlayFramework 2.4.6, hochladen möchten, um eine multipart-Datei (Größe 18M) und der server gibt die folgende Fehlermeldung zurück:
For request 'POST /api/myEndpoint' [Request Entity Too Large]
Ich sah sich um und versuchte, die folgenden mit Erfolg aus:
- spielen.http.parser.maxMemoryBuffer=2000000K
- Parser.MultipartFormData.maxLength=1024000K
- spielen.http.parser.maxDiskBuffer=2000000K
- Aktion.async(parse.anyContent(Einige(1024*200L)))
Und keiner von Ihnen das problem löst.
Hier ist der Stacktrace auch:
14:57:33.128 [New I/O worker #2] [error] - p.c.server.netty.RequestBodyHandler - Exception caught in RequestBodyHandler java.nio.channels.ClosedChannelException: null at org.jboss.netty.channel.socket.nio.AbstractNioWorker.setInterestOps(AbstractNioWorker.java:506) [netty-3.10.4.Final.jar:na] at org.jboss.netty.channel.socket.nio.AbstractNioWorker$1.run(AbstractNioWorker.java:455) [netty-3.10.4.Final.jar:na] at org.jboss.netty.channel.socket.ChannelRunnableWrapper.run(ChannelRunnableWrapper.java:40) [netty-3.10.4.Final.jar:na] at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:391) [netty-3.10.4.Final.jar:na] at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:315) [netty-3.10.4.Final.jar:na] at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) [netty-3.10.4.Final.jar:na] at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) [netty-3.10.4.Final.jar:na] at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [netty-3.10.4.Final.jar:na] at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [netty-3.10.4.Final.jar:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_65] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_65] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65]
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gelöst ist das problem damit:
Ich hatte das gleiche problem, das senden einer großen form und
play.http.parser.maxMemoryBuffer=4MB
gelöst.Sehen Sie diese Dokumentation über die Speicher-und disk-Puffer-Spiel verwendet:
https://www.playframework.com/documentation/2.4.x/ScalaBodyParsers#Max-content-length
So, da Sie versuchen, uploaden einer Datei multipart, müssen Sie erhöhen die
play.http.parser.maxDiskBuffer
zu etwas >18MB.So, das hinzufügen dieser auf Ihre Bewerbung.conf beheben sollte:
Für diejenigen, die vor Ausgabe mit Play Framework 2.6.x siehe Dokumentation auf https://www.playframework.com/documentation/2.6.x/ScalaBodyParsers
fügen Sie die folgende in Anwendung.conf:
In meinem Fall, ich bin mit einem
AnyContent
Parser. Ich habe diecontroller
definition zu folgenden mein code funktioniert