实现对重复文件自动重命名

This commit is contained in:
F嘉阳
2018-02-24 21:57:00 +08:00
parent a0c995c07e
commit 904daf9e2f
2 changed files with 35 additions and 18 deletions

View File

@@ -66,6 +66,12 @@
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>

View File

@@ -9,6 +9,7 @@ import com.fjy.spring.service.FileService;
import com.fjy.spring.service.LogService;
import com.fjy.spring.untils.FormatFileSizeUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@@ -75,9 +76,9 @@ public class UpLoadController {
@RequestMapping(value = "/oneUpload")
public String oneUpload(@RequestParam("imageFile") MultipartFile imageFile, HttpServletRequest request) {
TbUser user = (TbUser)request.getSession().getAttribute(GlobalConstant.USER_SESSION_KEY);
TbUser user = (TbUser) request.getSession().getAttribute(GlobalConstant.USER_SESSION_KEY);
//String uploadUrl = request.getSession().getServletContext().getRealPath("/") + "upload/";
String uploadUrl = serverProperties.getFilePath()+ "upload/";
String uploadUrl = serverProperties.getFilePath() + "upload/";
String filename = imageFile.getOriginalFilename();
File dir = new File(uploadUrl);
if (!dir.exists()) {//判断目录是否存在,否则自动创建
@@ -136,23 +137,23 @@ public class UpLoadController {
*/
@RequestMapping("/moreUpload")
public void moreUpload(HttpServletRequest request,
@RequestParam(value = "courseName",required = false) String courseName,
@RequestParam(value = "folder",required = false) String folder,
@RequestParam(value = "rename",required = true) boolean rename) {
@RequestParam(value = "courseName", required = false) String courseName,
@RequestParam(value = "folder", required = false) String folder,
@RequestParam(value = "rename", required = true) boolean rename) {
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> files = multipartHttpServletRequest.getFileMap();
TbUser user = (TbUser)request.getSession().getAttribute(GlobalConstant.USER_SESSION_KEY);
TbUser user = (TbUser) request.getSession().getAttribute(GlobalConstant.USER_SESSION_KEY);
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateNowStr = sdf.format(date);
String uploadUrl;
//String uploadUrl = request.getSession().getServletContext().getRealPath("/") + "upload/";
if (rename){
uploadUrl = serverProperties.getFilePath()+ "upload/"+courseName+"/"+folder+"/";
}else {
uploadUrl = serverProperties.getFilePath()+ "upload/";
if (rename) {
uploadUrl = serverProperties.getFilePath() + "upload/" + courseName + "/" + folder + "/";
} else {
uploadUrl = serverProperties.getFilePath() + "upload/";
}
@@ -165,23 +166,33 @@ public class UpLoadController {
for (MultipartFile file : files.values()) {
String filename = file.getOriginalFilename();
String suffix = "."+filename.substring(filename.lastIndexOf(".") + 1);//获取文件后缀
String suffix = "." + filename.substring(filename.lastIndexOf(".") + 1);//获取文件后缀
TbFile tbFile = new TbFile();
String pathname;
if (rename){
pathname = uploadUrl + user.getColstudentno()+user.getColrealname()+suffix;
tbFile.setColfilename(user.getColstudentno()+user.getColrealname()+suffix);
}else {
if (rename) {
pathname = uploadUrl + user.getColstudentno() + user.getColrealname() + suffix;
tbFile.setColfilename(user.getColstudentno() + user.getColrealname() + suffix);
} else {
pathname = uploadUrl + filename;
tbFile.setColfilename(filename);
}
File targetFile = new File(pathname);
//若文件已存在则自动重命名
if (targetFile.exists()){
File mvfile = new File(pathname+".bak");
try {
FileUtils.moveFile(targetFile, mvfile);
log.info("源文件:"+targetFile.getName()+"已重命名为:"+ mvfile.getName());
} catch (IOException e) {
e.printStackTrace();
}
}
log.info("文件上传到: " + uploadUrl + filename);
log.info("文件大小: " + new FormatFileSizeUtil().GetFileSize(file.getSize()));
log.info("文件名: " + filename);
tbFile.setColfilesize(new FormatFileSizeUtil().GetFileSize(file.getSize()));
tbFile.setColtime(dateNowStr);
@@ -196,7 +207,7 @@ public class UpLoadController {
logs.setUserid(user.getColuserid());
logs.setColtime(dateNowStr);
logs.setColip(httpServletRequest.getRemoteAddr());
logs.setColheader(user.getColname()+"上传了'"+filename+"'文件");
logs.setColheader(user.getColname() + "上传了'" + filename + "'文件");
logService.addLogRec(logs);
if (fileService.addFile(tbFile))