上传文件,修改文件名保存在服务器端
/**
* 文件上传
* desc:
* author:yang
* @throws Exception
*/
@RequestMapping("/toPersonForUpload.do")
public String toPersonForUpload(Person person, HttpServletRequest request) throws Exception{
//转换request
MultipartHttpServletRequest mr = (MultipartHttpServletRequest) request;
//获得文件
CommonsMultipartFile cf = (CommonsMultipartFile) mr.getFile("pic");
//文件流化
byte[] fbyte = cf.getBytes();
//获得本机的文件路径和名字
String orifileName = cf.getOriginalFilename();
//获取当前的时间,精确到毫秒
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddhhmmssSSS");
String fileName = format.format(new Date());
//取三位随机数
Random random = new Random();
for(int i = 0; i < 3; i++){
fileName = fileName + random.nextInt(9);
}
//获取文件后缀
String suffix = orifileName.substring(orifileName.lastIndexOf("."));
//拼接完整文件名
fileName = fileName + suffix;
String path = request.getSession().getServletContext().getRealPath("/");
//定义输出流
OutputStream out = new FileOutputStream(path+"upload/"+fileName);
//写到服务器上
out.write(fbyte);
out.flush();
out.close();
return "success";
}