Spring MVC 中通过fileupload上传文件,其中项目使用maven管理。
1.上传文件首先需要的是导入相关支持jar包:commons-fileupload.jar,commons-io.jar
因为我是用的maven管理项目,所以要在pom文件中配置(每个人的jar包位置根据实际情况定)
<!-- 文件上传 start by zhangyd-c --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <!-- 文件上传 end -->
2.获取文件信息
/** * 头像 根据Id生成存储目录 * @param file * @param userId * @param request * @param response * @throws IOException * @return void * @throws */ @RequestMapping("/updateLogo") public String updateLogo( @RequestParam(value = "upload-file") MultipartFile file, @RequestParam String id, HttpServletRequest request,String base64Char, HttpServletResponse response) throws IOException { response.setContentType("text/html;charset=UTF-8"); String fileName = file.getOriginalFilename(); String fileFormat = fileName.substring(fileName.lastIndexOf(".")); UUID uid = UUID.randomUUID(); String newFileName = uid.toString() + fileFormat; String filePath = null; //base64Char 为剪切后的 base64位的字符串,如果不为空说明图片被剪切了① if(base64Char == null || "".equals(base64Char)){ // 根据用户id获取创建上传目录 filePath = FileUtils.getFilePath(id);② File descfile = new File(filePath, newFileName);// 文件路径文件名 FileUtils.copyInputStreamToFile(file.getInputStream(), descfile);// 开始上传 }else{ filePath = this.userDetailsService.GenerateImage(base64Char, id,newFileName);③ } //此处将图片信息保存到数据库(省略......) return "redirect:/userhome/home"; }
3.如果认为只是这样就完了的话, 那就错了 ,你的程序一定跑不起来,MultipartFile这个接口 需要在spring的配置文件中配置,加入
org.springframework.web.multipart.commons.CommonsMultipartResolver
<!-- 配置上传文件的限制信息 by zhangyd-c --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认最大不超过2M --> <property name="maxUploadSize" value="2097152" /> </bean>
这样就ok 了,
因为我这个功能上传用户头像,因此就包含剪切后的图像获取,所以中间穿插了一些其他知识点(①②③),具体内容下次整理了发上。。
相关推荐
这是结合博客的源码,链接是:http://blog.csdn.net/u012660464/article/details/53508757 。名为:Spring MVC+Maven 实现同一项目的前端和后台交互,该源码示例了前端和后台如何进行参数的绑定传递。
用Spring-mvc+Maven构建一个java项目,此为框架代码,并附一个demo。
spring,spring mvc,mybatis,maven,mySql 项目框架
项目搭建实例、spring + mybatis + spring mvc + maven + mysql;有任何不懂的技术问题都可以联系我共同讨论
spring mvc+spring+maven框架项目,纯净项目
eclipse通过Maven创建一个Spring MVC项目
spring+mybatis+spring-mvc+maven 项目框架.zip spring+mybatis+spring-mvc+maven 项目框架.zip
基于maven的一个小spring mvc demo,登录功能,包含查询与插入。 我非常讨厌下载内容需要积分,互联网就应该是共享。哈哈没有积分需要可以给我发邮件1121500062@qq.com
学生信息系统spring mvc、 maven、 mongodb
spring mvc mybatis maven整合框架支持事物
基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目源码.zip 基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目源码.zip 基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili...
实例教程 http://blog.csdn.net/fenglailea/article/details/78280686 本文件是此教程的 完整源码
spring、mybatis、spring mvc、maven、mysql 项目搭建实例
Spring MVC+Maven+Velocity配置实例
ssm_spring_mvc_maven.war,页面用的bootstrap,实现了记录的增删改查,数据回显,模糊查询
maven 管理jar包,基于注解的spring mvc
springmvc + spring + mybatis + maven整合配置文件
Spring4 mvc+maven 框架搭建,网上找的例子搭建的
maven构建spring mvc项目 + Mybatis整合