spring mvc 的上传图片是怎么实现的?

时间:2021-02-15 23:38:23

spring mvc 的上传图片是怎么实现的?

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