前些日子自己学着写了一个文件上传的功能,由于struts2对大文件上传支持的不好,就直接使用common-fileupload来直接写的。出现了在和struts2一起工作时大于2M的文件,common-fileupload发现不了,无法上传的奇怪问题。
这几天又旧事重提,研究了一下报的异常信息,发现可能是struts2的拦截器的问题,由于我单独上传文件的网页也在struts2监控的文件夹下,struts2把这个页面的请求给劫走了,放过去的请求里已经被修改过,没有了我的文件路径,但是当我的文件大于2M时,struts2报文件太大的异常没有处理,所以放过去的请求还可以找到我的上传文件。
我把单独上传的网页另外新建了一个文件夹,不在struts2的监控范围内,然后再上传一切正常了。这得益于前两天自己写的三个Filter由于顺序排列有问题,而导致我想实现的功能不能实现,调整之后才成功,原来Filter Chain的先后顺序是在web.xml定义的,真是惭愧。