1 form 表单中有个属性enctype="multipart/form-data",其中multipart/form-data的意思是将上传文件的数据转化为二进制数据,然后才会上传。
2 上传文件大小的设置,很多书籍都会这么配置的
<interceptor-ref name="fileUpload">
<param name="maximumSize">4096000</param>
</interceptor-ref name>
<interceptor-ref name="defaultStack"></interceptor-ref>
但这样是会报错的,服务器报错有这条语句:The request is rejected because its size (3691573) exceeds the configured maximum (2097152),设置的上4096000, 上传的文件才是3691573,按理可以的,但报错说明,拦截器fileUpload的设置没起作用,服务器依然认为上传文件的上限是默认值2097152。解决方案是,上传文件大小的上限用如下语句设置:<constant name="struts.multipart.maxSize" value="4096000"></constant>
3 文件上传一共分两步:第一步将客户端上传的文件先存储在缓冲目录下,目录设置为<constant name="struts.multipart.saveDir" value="c:\"></constant>然后再传到指定目录