您的位置:首页 > 编程语言 > Java开发

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";
}


管理系统页面展现结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring-mvc