文件上传

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, "服务异常");
    }

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值