公司一个放软件的服务器,500G的硬盘塞的满满的,很多软件都是重复的,要么就是很老的版本年久不用,需要的有找不到在哪里。遂想趁着经济危机,工作不紧张的时候,做个软件清理一下硬盘,再把留下的文件加到数据库里,通过一个jsp网页显示给大家,以供搜索及下载。做好之后又想在页面上增加一个文件上传的功能,让大家上传新的文件。在网上搜索了一下,发觉有的人使用Socket直接处理文件流,有的使用上传组件,我选了一个简单实现的,使用了Common FileUpload组件,大品牌(Apache),有保证(Apahce可不像三鹿)。
下载了最新的版本写了一个实现,发觉一个问题:当文件小于2M时,fileupload 组件的parseRequest(request)函数无法读取到输入的文件,提示list为零;当文件大于2M时,可以读到,但是日志里却提示一个Error警告,是struts2抛出的,由于我使用Servlet做的文件处理,设置了文件最大值为3G,所有虽然日志里提示错误但是文件还是传上去了。(由于在开始的时候使用Struts2和Hibernate做的分页,所以项目里使用了struts2,但是struts2本身就是默认使用FileUpload的的啊,所以我想他俩应该不会不兼容啊,但却还是有异常)
在Struts.properties文件里加入了struts.multipart.maxSize =3G,结果只有大于3G的文件可以上传(同时提示error说文件爱你超过了大小限制,但是可以上传),小于3G的提示发现不了上传文件。我现在设置
struts.multipart.maxSize =0,这样不管多么大小的文件都能上传了,虽然总是提示error。
如果去除struts2的框架文件,运行良好。
不知道为什么,希望得到指点。
责任编辑:小草