spring mvc 的上传图片是怎么实现的?
- 导入jar包,commons-io.jar 及 commons-fileupload.jar
- 在springmvc的配置文件中配置Mutipart解析器CommonsMultipartResolver,在其中配置文件上传的编码格式,设置最大上传文件大小,设置上传文件最大占用空间大小
1 <!--上传下载 --> 2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 3 <!-- 指定上传的字符集 --> 4 <property name="defaultEncoding" value="utf-8"></property> 5 <!-- 最大上传文件大小 --> 6 <property name="maxUploadSize" value="10485760000"></property> 7 <!-- 最大占用内存空间大小 --> 8 <property name="maxInMemorySize" value="40960"></property> 9 </bean>
- 前端上传图片的时候需要在form表单上加上enctype=mutilpart/form-data,然后提供上传图片的表单域,即type=“file”的input标签
- 在controller层中接收上传文件的参数时,有两种方法:
-
- 第一种:定义一种支持文件传输的request —— MultipartHttpServletRequest (HttpServletRequest只能接收数据类型的表单请求参数) ,也可以通过HttpServletRequest来接收,最终 在通过强转,转成MultipartHttpServletRequest;
-
- 第二种:直接定义MutipartFile 接收文件对象,但是只能接收有限个数的文件,比如:一个,两个,有一个明确的文件个数时;如果页面上传标签可以追加,文件个数不确定时,这时需要通过multipartHttpServletRequest.getFileMap()来接收上传来的文件,再通过遍历,将每一个文件进行上传。