SpringMvc -上传文件
2016-04-08 13:47
555 查看
第一次做项目,做一个app的后台管理系统,这两天遇到了后台要上传选手信息,因此自己对整个上传文件的功能做了了解,并且记录下学习的过程;
1、上传文件功能需要用到两个包:commons-fileupload(文件上传)和commons-io(io)
在pox.xml导入两个依赖包:
2、spring-mvc配置文件中配置MultipartResolver处理器,并可在此加入对上传文件的属性限制 ,或者异常信息,我这里只配置了处理器和上传文件的限制:
3、编写了controller类进行测试了下
package com.ykw.springmvc.controller; import java.io.File; import java.io.IOException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; @Controller @RequestMapping("upload") public class UploadController { /** * 上传单个文件 * @param file * @param desc * @return * @throws IllegalStateException * @throws IOException */ @RequestMapping(value = "/one") public String upload(@RequestParam("file") MultipartFile file , @RequestParam("desc") String desc) throws IllegalStateException, IOException{ //可以将文件转存到d盘目录 System.out.println("文件名称:"+file.getOriginalFilename()); file.transferTo(new File("d:\\"+file.getOriginalFilename())); return "success"; } /** * 上传多个文件,用数组接收 * @return */ @RequestMapping(value ="/many") public String upload2(@RequestParam MultipartFile[] files , @RequestParam("desc") String desc){ for(MultipartFile file :files){ System.out.println("文件名称:"+file.getOriginalFilename()); System.out.println("文件尺寸:"+file.getSize()); } System.out.println(desc); return "success"; } }
4、编写jsp页面进行上传文件
这里要注意enctype要指定,查询html form标签:
没有指定出现的情况:
5、测试结果:
测试了效果后,在项目中应用效果(上传选手语音、视频、图片):
这里用到了UUID生成全球唯一ID作为文件名称
@RequestMapping(value = "audienceadd") public String addaudience(HttpServletRequest request, @RequestParam("voice") MultipartFile voice, @RequestParam("video") MultipartFile video, @RequestParam("image") MultipartFile image) throws IllegalStateException, IOException { Audience audience = new Audience(); audience.setOrderId(Integer.parseInt(request.getParameter("orderId"))); audience.setContent(request.getParameter("content")); audience.setTelephone(request.getParameter("telephone")); audience.setName(request.getParameter("name")); String originalFilename = null; String path = null; /** * 判断语音文件,将文件存入路径后,把路径赋值给数据库 */ originalFilename = voice.getOriginalFilename(); if (voice != null && originalFilename != null && originalFilename.length() > 0) { path = "F:\\1\\"; String newFileName=UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf(".")); File newFile = new File(path+newFileName); voice.transferTo(newFile); audience.setYuying(newFileName); } else { audience.setYuying(""); } /** * 判断视频文件,将文件存入路径后,把路径赋值给数据库 */ originalFilename = video.getOriginalFilename(); if (video != null && originalFilename != null && originalFilename.length() > 0) { path = "F:\\1\\"; String newFileName=UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf(".")); File newFile = new File(path+newFileName); video.transferTo(newFile); audience.setShiping(newFileName); } else { audience.setShiping(""); } /** * 判断图片文件,将文件存入路径后,把路径赋值给数据库 */ originalFilename = image.getOriginalFilename(); if (image != null && originalFilename != null && originalFilename.length() > 0) { path = "F:\\1\\"; String newFileName=UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf(".")); File newFile = new File(path+newFileName); image.transferTo(newFile); audience.setPicture(newFileName); } else { audience.setPicture(""); } audienceSvc.addAudience(audience); return "redirect:audiencelist.action"; }
管理系统页面展现结果:
相关文章推荐
- TinyQuery 简单易用的JPQL Query Builder
- 升级Spring MVC 4.1.3.Final遇到接口返回406 (Not Acceptable)的问题
- Spring Framework 将日志输出到slf4j的方法
- spring-mvc源码阅读(一)servlet
- spring-mvc源码阅读(三)RequestMappingHandlerMapping
- Spring MVC 拦截器
- Spring MVC @ResponseBody 中文乱码 解决方案
- springmvc返回json乱码
- Spring Mvc工作原理
- spring mvc 验证码功能
- 在Controller中进行页面跳转的方式
- spring-mvc最小化配置,最简单入门。
- java.lang.IllegalStateException: Cannot map handler
- 初学spring mvc的几点心得
- Spring mvc+mybatis框架下的TooManyResultsException异常
- 基于javaConfig的springDataJpa+dubbo+springMvc搭建(一)
- spring-mvc 3.2.12及以后<mvc:resource>配置处理的变化
- 一个简单的Spring MVC的例子
- Spring MVC数据转换
- Spring MVC数据校验与国际化