SpringMVC实现文件上传

简介
  文件上传是web开发中常见的需求之一,springMVC将文件上传进行了集成,可以方便快捷的进行开发。

springmvc中对多部件类型解析

在 页面form中提交enctype="multipart/form-data"的数据时,需要springmvc对multipart类型的数据进行解析。在springmvc.xml中配置multipart类型解析器。

<!-- 文件上传 -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设置上传文件的最大尺寸为5MB -->
        <property name="maxUploadSize">
            <value>5242880</value>
        </property>
    </bean>
  • 加入上传图片的 jar

使用下边的jar进行图片上传。

image

创建图片虚拟目录存储图片
  在tomcat上配置图片虚拟目录,在tomcat下conf/server.xml中添加:

<Context docBase="F:\develop\upload\temp" path="/pic" reloadable="false"/>

访问http://localhost:8080/pic即可访问F:\develop\upload\temp下的图片。
Controller代码

//商品修改提交
    @RequestMapping("/editItemSubmit")
    public String editItemSubmit(Items items, MultipartFile pictureFile)throws Exception{
        
        //原始文件名称
        String pictureFile_name =  pictureFile.getOriginalFilename();
        //新文件名称
        String newFileName = UUID.randomUUID().toString()+pictureFile_name.substring(pictureFile_name.lastIndexOf("."));
        
        //上传图片
        File uploadPic = new java.io.File("F:/develop/upload/temp/"+newFileName);
        
        if(!uploadPic.exists()){
            uploadPic.mkdirs();
        }
        //向磁盘写文件
        pictureFile.transferTo(uploadPic);
    ...
}

推荐阅读更多精彩内容