使用 Joy 时如何为 FileUploadFactory 设置 maxFileSize?
How to set maxFileSize for FileUploadFactory when using Joy?
有人可以告诉我如何在使用 Joy 时为 Jodd 中的文件上传配置 maxFileSize 吗?
我已经在 joy.props 中尝试过,甚至在 [joy.madvoc] 部分下,早期工作:
madvocConfig.fileUploadFactory.maxFileSize=-1
但是运气不好:(
还有一个问题就是如何强制,报错,没有它,得到:
java.lang.NullPointerException
com.mycircle.action.CircleAction.add(CircleAction.java:78)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
jodd.madvoc.ActionRequest.invokeActionMethod(ActionRequest.java:256)
jodd.madvoc.ActionRequest.lambda$createExecutionArray(ActionRequest.java:226)
jodd.madvoc.ActionRequest.invoke(ActionRequest.java:240)
jodd.madvoc.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:79)
jodd.madvoc.interceptor.ActionInterceptor.apply(ActionInterceptor.java:38)
jodd.madvoc.ActionRequest.invoke(ActionRequest.java:240)
jodd.joy.i18n.I18nInterceptor.intercept(I18nInterceptor.java:46)
jodd.madvoc.interceptor.ActionInterceptor.apply(ActionInterceptor.java:38)
jodd.madvoc.ActionRequest.invoke(ActionRequest.java:240)
jodd.madvoc.ActionRequest.lambda$createExecutionArray[=11=](ActionRequest.java:209)
jodd.madvoc.ActionRequest.invoke(ActionRequest.java:240)
jodd.madvoc.component.MadvocController.invoke(MadvocController.java:163)
jodd.madvoc.MadvocServletFilter.doFilter(MadvocServletFilter.java:109)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
jodd.decora.DecoraServletFilter.doFilter(DecoraServletFilter.java:144)
经过调试,我发现这是由于 FileUploadFactory 和 AdaptiveFileUploadFactory 中定义的文件大小限制 100240 字节造成的。
我有一张@In FileUpload 图片;在 CircleAction 中,它因此变为空。
操作方法如下:
- 从
Joy
到达Madvoc
- 在
Madvoc
中获取 FileUploader
组件 - 它是一个新组件,仅包含一个 FileUploadFactory
实例。
- 使用它:)
像这样:
public class MyWebApplication extends JoyContextListener {
@Override
protected JoddJoy createJoy() {
final JoddJoy joy = super.createJoy();
joy.withWebApp(webApp -> {
webApp.withRegisteredComponent(FileUploader.class, fileUploader -> {
AdaptiveFileUploadFactory adaptiveFileUploadFactory =
(AdaptiveFileUploadFactory) fileUploader.get();
adaptiveFileUploadFactory.setMaxFileSize(10000000);
});
});
return joy;
}
}
第二种方法是使用 registerComponent
并简单地传递 FileUploader
.
的实现
Atm,无法从 madvoc 配置中设置此值,但我会尽快修复。不再有 madvocConfig
- 您可以设置每个组件。所以你可以这样做:fileUploader.maxFileSize
(修复后:)。
有人可以告诉我如何在使用 Joy 时为 Jodd 中的文件上传配置 maxFileSize 吗?
我已经在 joy.props 中尝试过,甚至在 [joy.madvoc] 部分下,早期工作:
madvocConfig.fileUploadFactory.maxFileSize=-1
但是运气不好:(
还有一个问题就是如何强制,报错,没有它,得到:
java.lang.NullPointerException
com.mycircle.action.CircleAction.add(CircleAction.java:78)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
jodd.madvoc.ActionRequest.invokeActionMethod(ActionRequest.java:256)
jodd.madvoc.ActionRequest.lambda$createExecutionArray(ActionRequest.java:226)
jodd.madvoc.ActionRequest.invoke(ActionRequest.java:240)
jodd.madvoc.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:79)
jodd.madvoc.interceptor.ActionInterceptor.apply(ActionInterceptor.java:38)
jodd.madvoc.ActionRequest.invoke(ActionRequest.java:240)
jodd.joy.i18n.I18nInterceptor.intercept(I18nInterceptor.java:46)
jodd.madvoc.interceptor.ActionInterceptor.apply(ActionInterceptor.java:38)
jodd.madvoc.ActionRequest.invoke(ActionRequest.java:240)
jodd.madvoc.ActionRequest.lambda$createExecutionArray[=11=](ActionRequest.java:209)
jodd.madvoc.ActionRequest.invoke(ActionRequest.java:240)
jodd.madvoc.component.MadvocController.invoke(MadvocController.java:163)
jodd.madvoc.MadvocServletFilter.doFilter(MadvocServletFilter.java:109)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
jodd.decora.DecoraServletFilter.doFilter(DecoraServletFilter.java:144)
经过调试,我发现这是由于 FileUploadFactory 和 AdaptiveFileUploadFactory 中定义的文件大小限制 100240 字节造成的。
我有一张@In FileUpload 图片;在 CircleAction 中,它因此变为空。
操作方法如下:
- 从
Joy
到达Madvoc
- 在
Madvoc
中获取FileUploader
组件 - 它是一个新组件,仅包含一个FileUploadFactory
实例。 - 使用它:)
像这样:
public class MyWebApplication extends JoyContextListener {
@Override
protected JoddJoy createJoy() {
final JoddJoy joy = super.createJoy();
joy.withWebApp(webApp -> {
webApp.withRegisteredComponent(FileUploader.class, fileUploader -> {
AdaptiveFileUploadFactory adaptiveFileUploadFactory =
(AdaptiveFileUploadFactory) fileUploader.get();
adaptiveFileUploadFactory.setMaxFileSize(10000000);
});
});
return joy;
}
}
第二种方法是使用 registerComponent
并简单地传递 FileUploader
.
Atm,无法从 madvoc 配置中设置此值,但我会尽快修复。不再有 madvocConfig
- 您可以设置每个组件。所以你可以这样做:fileUploader.maxFileSize
(修复后:)。