播放框架文件上传空参数

Posted

技术标签:

【中文标题】播放框架文件上传空参数【英文标题】:Play Framework file upload empty params 【发布时间】:2018-08-30 11:25:14 【问题描述】:

我正在开发一个使用 Apache2.4 作为我的网络服务器的 Play Framework 1.4 应用程序。

我正在尝试进行基本文件上传,但是如果我尝试上传大于 487KB 的文件,则参数为空,如果我上传的文件小于 487KB,则参数在那里,我可以从tmp 路径。代码如下:

// File <= 487KB Logs "params: file=[Ljava.lang.String;@160b7aab"
// File > 487KB Logs "params: "
public static String uploadFile() 
    Logger.info("params: %s", params.all());
    return "";

我的 apache 配置设置允许大尺寸的有效载荷和标头:

LimitRequestFields 0
LimitRequestBody 0
LimitRequestFieldSize 2097152

任何关于这方面的建议都会很棒。

【问题讨论】:

也不确定这是否有帮助,但如果我在有效负载中发送额外的参数以及文件,当文件小于 487KB 时它们存在,但当文件大于 487KB 时不存在。看起来像是负载大小问题,但在 Play 或 Apache 中看不到任何限制此问题的设置。 【参考方案1】:

好的,事实证明这是 Play Framework 配置限制。很难找到嵌套在他们的文档中。您需要将最大内容长度设置为要上传的任何大小的文件(以字节为单位):

play.netty.maxContentLength = 2097152

或者,如果您不想要最大尺寸,可以将其设置为 -1

play.netty.maxContentLength = -1

Documentation here

【讨论】:

以上是关于播放框架文件上传空参数的主要内容,如果未能解决你的问题,请参考以下文章

Laravel S3 文件上传 - PutObject 操作需要非空参数:Bucket

laravel框架多文件上传

使用XWAF框架——上传文件

Vue结合Element框架实现图片,文件,视频上传

Vue结合Element框架实现图片,文件,视频上传

Spring框架——day04参数校验和文件上传