public Response test(@RequestParam("file")MultipartFile file){
//检测上传文件是否为空
if (file.isEmpty()){
response.setData("禁止上传空文件");
return response;
}
int size = (int) file.getSize();
String path = "./img";
Subject subject = SecurityUtils.getSubject();
Session session = subject.getSession();
String username = (String) session.getAttribute("UserName");
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd-HHmmss");
String date = df.format(new Date());
String suffix = file.getOriginalFilename();
String suffixsub = suffix.substring(suffix.lastIndexOf("."));
File dest = new File(path + "/" + username + "/" + username + date + suffixsub);
//检测目标文件夹是否建立
if (!dest.getParentFile().exists()){
dest.getParentFile().mkdir();
}
//尝试上传文件
try {
log.warn("正在上传文件,文件大小为" + size + ",上传路径为:" + path + "/" + username + date + ".png");
BufferedInputStream fileInputStream = (BufferedInputStream) file.getInputStream();
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(path + "/" + username + "/" + username + date + suffixsub));
byte[] bs = new byte[1024];
int len;
while ((len = fileInputStream.read(bs))!=-1){
bufferedOutputStream.write(bs,0,len);
}
bufferedOutputStream.flush();
bufferedOutputStream.close();
response.setData("上传完成");
return response;
}catch (IOException e){
log.warn("上传文件失败");
response.setData("上传失败");
return response;
}
}
文件上传完之后的目录结构如下,