struts上传文件大小
⑴ struts2中限制上传文件大小后错误信息的显示
Struts2本身提供了一个文件上传的拦截器,通过配置该拦截器可以更轻松地实现文件过滤。我们只需要在Action中配置该拦截器就可以了。当文件过滤失败后,会自动转向input逻辑视图,因此必须为该Action配置名为input的逻辑视图,除此之外还必须为配置defaultStack的拦截器的引用。配置文件如下:
<action name="upload" class="com.annlee.upload.UploadAction" >
<!-- 配置fileUpload的拦截器 -->
<interceptor-ref name="fileUpload">
<!-- 配置允许上传的文件类型 -->
<param name="allowedTypes">image/bmp,image/gif,image/jpg</param>
<!-- 配置允许上传的文件大小 -->
<param name="maximumSize">2000000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<param name="savePath">/</param>
<result>/common/succ.jsp</result>
<result name="input">/cos_fileupload/fileupload.jsp</result>
</action>
如果上传失败系统会返回到原来的页面,要在原来的页面上加上以下错误提示代码:
<s:fielderror />这样系统就会返回提示给用户,但是这时的提示是Struts2自带的提示,非常不友好,我们可以国际化资源里配置以下两项,我们的提示就会自动替换Struts2的提示,提示的关键字如下
struts.messages.error.file.too.large
struts.messages.error.content.type.not.allowed
此外,如果用户上传失败的原因不是因为以上两种还有另外的一个信息提示用户,它的关健字是:struts.messages.error.uploading,我们也应该替换这个提示信息。
其它说明:如果没有指定临时的保存文件夹,系统就会使用javax.servlet.context.tempdir路径,这个路径是Tomcat的work\Catalina\localhost\,我们应该设置自己的路径,这个配置的属性为struts.multipart.saveDir可以在struts.properties中配置,还有一个文件上传的属性:struts.multipart.maxSize设置整个表单请求内容的最大字节数。
⑵ 关于struts2框架的文件上传问题。。。上传的文件超过2MB就报下面的异常,请问怎么解决
在struts.xml中设置
<constant name="struts.multipart.maxSize" value="314572800"></constant> <!-- 允许300M -->
可以允许上传300M的呢!我试了下,上传了个202M的电影,竟然上传成功了!
⑶ Struts2上传文件时,将文件上传到Oracle字段时为什么会有限制大小
建议你不要用数据库存储文件,因为这样会让你的表很大,对该表的操作如插入、查询(特别是查询)等会变得很慢,而且你查询出来后,还要用大量内存在保存,然后也不好管理这些已经存储的文件。建议你将文件存储在你的服务器的硬盘上,然后再把该文件的路径保存在数据库中,以后你查询时,只查到该文件的路径,如果要用户文件(图片)时你再通过该路径加载这个文件(注意,数据库中最好存一个有规则的相对路径,程序中可配置一个全局根路径,读取文件时用这个根路径+相对路径来赢取,这样当你的系统迁移到其它服务器时办要改上个全局根路径配置即可)。好处:1.数据库表变小了,插入、查询等操作变快了2.文件在硬盘文件系统中,可以直接通过操作系统来管理(如归档)
⑷ struts2中,文件上传和下载时候的缓冲区大小多少合适如题 谢谢了
文件通常默认是15MB的允许最大上传的文件,缓冲其实设为4096K就好了。和文件大小没关系。只跟网速度有关,设大了也没用。