基于SpringMVC的文件上传-关于MultipartFile的API
String getOriginalFilename():获取原始文件名,即上传的文件在客户端时的文件名;
boolean isEmpty():判断上传的文件是否为空,当没有选择文件就提交上传,或者,选择的文件是0字节的,则返回true,否则,返回false;
long getSize():获取文件大小,以字节为单位;
String getContentType():获取文件的MIME类型,可用于限制上传的文件类型;
void transferTo(File dest):保存客户端上传的文件,不可以与getInputStream()方法同时使用;
InputStream getInputStream():获取客户端上传的文件对应的输入流,不可以与transferTo()方法同时使用,如果需要自定义接收并处理客户端上传的文件的数据,则优先使用这个方法,而不要用transferTo()方法直接保存文件;
基于SpringMVC的文件上传-关于MultipartResolver的配置
在Spring的配置文件里,配置CommonsMultipartResovler时,可以为其属性注入值:
maxUploadSize:允许上传的文件的最大大小,假设设计值为1M,如果一个请求中上传了5个文件,则5个文件的大小的总和不允许超过1M;
maxUploadSizePerFile:允许上传的每个文件的最大大小,假设设计值为1M,如果一个请求中上传了5个文件,则每个文件的大小不允许超过1M,总共5个文件的大小的总和可以接近5M;
defaultEncoding:默认编码。
基于SpringMVC的文件上传-关于一次上传多个文件
如果需要上传的文件的数量是固定的,甚至每个文件所示的意义是特定的,则,在同一个表单中,添加多个控件,就可以一次性上传多张图片,在控制器中,就声明多个MultipartFile类型的参数,并逐一处理即可!
如果需要上传的文件的数量是不固定的,可以在控件中添加multiple="multiple"属性,在控制器中,将上传的文件的参数声明为MultipartFile[]类型即可!