1、文件上传到服务器(单台服务器)直接传到部署服务器上
@SysLog("文件上传")
@RequestMapping(value = "addFile" ,method = RequestMethod.POST)
//@ResponseBody
public ResultWarp addFile(HttpServletRequest request, HttpServletResponse response, String filetype) {
try {
//非空验证 @RequestBody TFileManagerEntity fileEntity
if(StringUtil.strIsNullOrEmpty(filetype)) return new ResultWarp(ResultWarp.FAILED,"文件上传类型不能为空");
List<MultipartFile> files = ((MultipartHttpServletRequest)request).getFiles("fileName");//接收文档
if(files.isEmpty()){
return new ResultWarp(ResultWarp.FAILED,"未选择文件,请重新选择文件");
}
String loginId = reqUtil.getLoginId();//取出cookie里loginId的值
UserLoginVo ul = (UserLoginVo) redisUtils.get(loginId);//获取当前角色登陆信息
String fileurl=CONF.isTrueFile();//获取一级目录//D:/java/logincode
if(fileurl.equals("false")) return new ResultWarp(ResultWarp.FAILED,"操作系统未识别,无法生成文件夹");
File dest1 = new File(fileurl);
File dest2 = new File(fileurl+"/"+ul.getRunitid());
File dest3 = new File(fileurl+"/"+ul.getRunitid()+"/"+ul.getUname());
//判断文件夹是否存在,不存在先建立文件夹
if(!dest1.getParentFile().exists()){ //判断文件父目录是否存在
dest1.getParentFile().mkdir();
}
if(!dest1.exists()){ //判断二级目录是否存在
dest1.mkdir();
}
if(!dest2.exists()){ //判断三级父目录是否存在
dest2.mkdir();
}
//if(!dest.getParentFile().exists()){ //判断文件父目录是否存在
// dest.getParentFile().mkdir();
//}
if(!dest3.exists()){ //判断四级目录是否存在
dest3.mkdir();
}
for(MultipartFile file:files){
String fileName = file.getOriginalFilename();
//int size = (int) file.getSize();
//System.out.println(fileName + "-->" + size);
try {
TFileManagerEntity fileEntity=new TFileManagerEntity();
fileEntity.setUrl(fileurl+"/"+ul.getRunitid()+"/"+ul.getUname());//文件路径
fileName.indexOf(".");
fileEntity.setFilename(fileName.substring(0, fileName.indexOf(".")));//文件名
fileEntity.setFilesuffix(fileName.substring(fileName.indexOf(".")+1));//文件后缀
fileEntity.setFiletype(filetype); //文件类型,1私有文件、2共享部门文件、3公共文件
TFileManagerEntity results=fileService.addFile(fileEntity);//保存文件相关信息到数据库
String filename=results.getFileid()+"."+results.getFilesuffix();
File filedest = new File(fileurl+"/"+ul.getRunitid()+"/"+ul.getUname()+ "/" + filename);
file.transferTo(filedest);
}catch (Exception e) {
e.printStackTrace();
return new ResultWarp(ResultWarp.FAILED,fileName+":文件上传失败");
}
}
return new ResultWarp(ResultWarp.SUCCESS,"上传成功");
} catch (Exception e) {
return new ResultWarp(ResultWarp.FAILED,"controller执行失败");
}
}
2、上传到FTP服务器上
/**
* fkx 不生成服务器临时文件
* 文件上传
* @param request
* @param response
* @param filetype 文件上传类型(1私有文件、2共享部门文件、3公共文件)
* @param userDirectory 用户目录
* @param unitDirectory 部门目录
* @param userid 在当前角色为超级管理员时传用户ID
* @return
*/
@SysLog("文件上传")
@RequestMapping(value = "addFile" ,method = RequestMethod.POST)
public ResultWarp addFile(HttpServletRequest request, HttpServletResponse response, String filetype, String userDirectory, String unitDirectory,String unitid,String userid) {
try {
//非空验证
if(StringUtil.strIsNullOrEmpty(filetype)) return new ResultWarp(ResultWarp.FAILED,"文件上传类型不能为空");
if(StringUtil.strIsNullOrEmpty(userDirectory)) return new ResultWarp(ResultWarp.FAILED,"用户目录不能为空");
String roletype=useridUtil.getRoleType();
if(filetype.equals("2")) {
if(StringUtil.strIsNullOrEmpty(unitDirectory)) return new ResultWarp(ResultWarp.FAILED,"部门目录不能为空");
}
if(roletype.equals("1")) {
if(StringUtil.strIsNullOrEmpty(unitid)) return new ResultWarp(ResultWarp.FAILED,"您是超级管理员,请选择数据所属部门");
if(StringUtil.strIsNullOrEmpty(userid)) return new ResultWarp(ResultWarp.FAILED,"您是超级管理员,请选择用户名称");
};
List<MultipartFile> files = ((MultipartHttpServletRequest)request).getFiles("fileName");//接收文档
if(files.isEmpty()){
return new ResultWarp(ResultWarp.FAILED,"未选择文件,请重新选择文件");
}
//String fileurl=CONF.isTrueFile();//获取一二级目录//D:/java/file
//if(fileurl.equals("false")) return new ResultWarp(ResultWarp.FAILED,"操作系统未识别,无法生成文件夹");
for(MultipartFile mfile:files){
String fileName = mfile.getOriginalFilename();
byte[] fileBytes = mfile.getBytes();//把文件转化成byte
try {
//保存上传文件记录到数据库
TFileManagerEntity fileEntity=new TFileManagerEntity();
fileEntity.setFileid(IDUtil.get32UUID());
if(roletype.equals("1")) {
//if(filetype.equals("2")) {
fileEntity.setUrl(CONF.path+"/fileManagement"+"/"+unitid+"/"+useridUtil.getUname());//文件路径
//}else{
// TUUserEntity user=userService.viewUser(userid);
// fileEntity.setUrl(CONF.path+"/fileManagement"+"/"+user.getUnitid()+"/"+useridUtil.getUname());//文件路径
//}
}else {
fileEntity.setUrl(CONF.path+"/fileManagement"+"/"+useridUtil.getRunitid()+"/"+useridUtil.getUname());//文件路径
}
//fileEntity.setUrl(CONF.path+"/fileManagement"+"/"+useridUtil.getRunitid()+"/"+useridUtil.getUname());//文件路径
fileEntity.setFilename(fileName.substring(0, fileName.lastIndexOf(".")));//文件名
fileEntity.setFilesuffix(fileName.substring(fileName.lastIndexOf(".")+1));//文件后缀
fileEntity.setFiletype(filetype); //文件类型,1私有文件、2共享部门文件、3公共文件
fileEntity.setUnitid(unitid);
//~~~~~~~~~~~~~~
String filename=fileEntity.getFileid()+"."+fileEntity.getFilesuffix();//文件保存到文件服务器上的文件名称
//文件上传到FTP服务器
boolean ftpIstrue=false;
if(roletype.equals("1")) {
//if(filetype.equals("2")) {
ftpIstrue=FtpUtils.uploadByteFile("/fileManagement"+"/"+unitid+"/"+useridUtil.getUname(), fileBytes, filename);
//}else{
// TUUserEntity user=userService.viewUser(userid);
// ftpIstrue=FtpUtils.uploadByteFile("/fileManagement"+"/"+user.getUnitid()+"/"+useridUtil.getUname(), fileBytes, filename);
//}
}else {
ftpIstrue=FtpUtils.uploadByteFile("/fileManagement"+"/"+useridUtil.getRunitid()+"/"+useridUtil.getUname(), fileBytes, filename);
}
//上传到ftp服务器后,在生成数据库上传记录
if(ftpIstrue) {
fileService.addFile(fileEntity, userDirectory, unitDirectory);//保存文件相关信息到数据库
}else {
return new ResultWarp(ResultWarp.FAILED,fileName+":文件上传失败,请重新上传");
}
}catch (Exception e) {
e.printStackTrace();
return new ResultWarp(ResultWarp.FAILED,fileName+":文件上传失败,请重新上传");
}
}
ResultWarp rw=new ResultWarp(ResultWarp.SUCCESS,"上传成功");
rw.addData("userDirectory", userDirectory);
return rw;
//return new ResultWarp(ResultWarp.SUCCESS,"上传成功");
} catch (Exception e) {
e.printStackTrace();
return new ResultWarp(ResultWarp.FAILED, "服务异常");
}
}
/**
* App首页轮播图新增
* @param request
* @param response
* @param info
* @return
*/
@RequestMapping(value = "addCarousel" ,method = RequestMethod.POST)
public ResultWarp addCarousel(MultipartFile[] fileNames) {
try {
if(fileNames == null || fileNames.length == 0) return new ResultWarp(ResultWarp.FAILED, "上传图片为空");
for (MultipartFile file : fileNames) {
String fileName = file.getOriginalFilename();
if(!fileName.matches("^.+\\.(jpg|png)$")) return new ResultWarp(ResultWarp.FAILED, "图片格式不对");
byte[] fileBytes = file.getBytes();//把文件转化成byte
//保存上传文件记录到数据库
TAppCarouselEntity pic = new TAppCarouselEntity();
pic.setName(fileName.substring(0, fileName.lastIndexOf(".")));
pic.setSuffix(fileName.substring(fileName.lastIndexOf(".")+1));
pic.setId(IDUtil.get32UUID());
pic.setUrl(CONF.path+"/App/CarouselImage");//文件路径
String filename = pic.getId()+"."+pic.getSuffix();//文件保存到文件服务器上的文件名称
//文件上传到FTP服务器
boolean ftpIstrue = false;
ftpIstrue = FtpUtils.uploadByteFile("/App/CarouselImage", fileBytes, filename);
//上传到ftp服务器后,再生成数据库上传记录
if(ftpIstrue) {
String result = carouselService.addTp(pic);//保存文件相关信息到数据库
if(!"ok".equals(result)) {//数据库记录添加失败,删除上传的文件
FtpUtils.delFtpFile(pic.getUrl().replace(CONF.path, "") + filename);
return new ResultWarp(ResultWarp.FAILED, result);
}
}else {
return new ResultWarp(ResultWarp.FAILED,fileName+":图片上传失败,请重新上传");
}
}
return new ResultWarp(ResultWarp.SUCCESS, "ok");
} catch (Exception e) {
e.printStackTrace();
}
return new ResultWarp(ResultWarp.FAILED, "服务异常");
}