我有一个应用程序可以让你上传一些照片。我有一个带有表单的 jsp 页面,用于选择要上传的照片:
subir-foto.jsp
...
<s:form action="SubirFoto" method="post" enctype="multipart/form-data" theme="bootstrap">
<s:file name="foto" label="Foto" />
<s:submit value="Upload" align="center" />
</s:form>
...
我希望通过这种形式,用户只能上传某些类型的文件(如 jpg、gif ...),并且不要让用户上传大小超过 2 MB 的照片。
struts.xml
<action
name="SubirFoto"
class="impl.redex.presentation.profile.upload.SubirFotosAction">
<interceptor-ref name="fileUpload">
<param name="maximumSize">2097152</param>
<param name="allowedTypes">
image/png,image/gif,image/jpeg,image/pjpeg
</param>
</interceptor-ref>
<interceptor-ref name="dentroStack"></interceptor-ref>
<result name="success">/WEB-INF/jsps/foto/foto-subida.jsp</result>
<result name="input">/WEB-INF/jsps/foto/subir-foto.jsp</result>
</action>
文件上传工作完美,除了一件事。如果满足要求,我可以上传任何照片。如果我尝试上传不是照片的文件(例如,纯文本文件),应用程序会将我在global.properties
jsp 表单的输入中定义的错误放入我。
全局属性
struts.messages.error.uploading - No se ha podido subir el fichero
struts.messages.error.file.too.large - El fichero es demasiado grande. El tamaño máximo es de 2MB.
struts.messages.error.content.type.not.allowed - Tipo de fichero no aceptado. Sólo es válido si la foto \
está en formato jpg/jpeg, gif o png.
如果我尝试上传大于 2 MB 的图像,就会出现问题,应用程序会将我重定向到subir-foto.jsp,但它不会在 jsp 页面中出现任何错误。
我做了一些实验,如果我<s:actionerror />
在上传大照片时放入 subir-foto.jsp ,它会出现:
the request was rejected because its size (17224595) exceeds the configured maximum (2097152)
如您所见,这不是我在 中定义的错误global.properties
。
为什么不是这两个不同的错误字段错误?这是引导插件的问题吗?或者它是Struts2的一个错误?难道我做错了什么?任何帮助将不胜感激,谢谢。