ftp文件上传

private int port = 2001;
private String host = "123.123.123.123";
private String username = "admin";
private String password = "admin";
private String rootDir = "/file";

/**
 * 上传附件
 *
 * @param files
 * @return
 */
@Transactional
@RequestMapping(value = "/uploadFile")
public JSONObject uploadFile(@RequestParam(value = "file", required = false) MultipartFile[] files) throws Exception{
    JSONObject object = new JSONObject();
    String id = request.getParameter("id");
    System.out.println("{上传文件id}"+id);
    for (MultipartFile file : files) {
        Thread.sleep(500);
        String filename = file.getOriginalFilename();
        System.out.println("{****文件大小}"+file.getSize());
        if (StringUtils.isNotEmpty(filename)) {
            if (file.getSize() > 20971520) {
                object.put("code",-2);
                object.put("msg","文件不能大于20MB!");
                return object;
            }
        }
        String attId = UUID.randomUUID().toString().replace("-", "");
        String fileName = file.getOriginalFilename();
        System.out.println("{文件名称}"+fileName);
        try {
            String suffix = fileName.substring(fileName.lastIndexOf(".") + 1);
            String newAnName = attId + "." + suffix;
            String url = "http://123.123.123.123:8080/download/";//要上传文件地址
            //1.登录
            Ftp ftp = new Ftp(host,port,username,password);
            ftp.setMode(Passive);
            System.out.println("{ftp登录}");
            //2.进入远程目录
            ftp.cd(rootDir);
            System.out.println("{ftp上传本地文件**流}"+file.getInputStream());
            //3.上传本地文件
            boolean flag = ftp.upload(rootDir, newAnName,file.getInputStream());
            System.out.println("{ftp上传本地文件返回flag}"+flag);
            //4.关闭连接
            ftp.close();
            System.out.println("{ftp关闭}");
            if (flag) {
                System.out.println("上传成功!");
                String anPath = url + attId + "." + suffix;
                System.out.println("上传外网地址:"+anPath);
                CrmAnnounceVo crmAnnounceVo = new CrmAnnounceVo();
                crmAnnounceVo.setAnId(attId);//文件id
                crmAnnounceVo.setId(id);//公告ID
                crmAnnounceVo.setAnName(fileName);//文件原名
                crmAnnounceVo.setNewAnName(newAnName);//文件编码后的名称
                crmAnnounceVo.setAnPath(anPath);//文件保存地址
                crmAnnounceVo.setAnSize(file.getSize());//文件大小
                crmAnnounceVo.setUploadUser(CommonUtil.getUserId());//上传人
                int ann = crmWxAnnouncementMapper.saveAnnounce(crmAnnounceVo);//保存文件信息
                if (ann > 0) {
                    object.put("code",1);
                    object.put("msg","上传成功!");
                } else {
                    object.put("code",0);
                    object.put("msg","上传失败!");
                    return object;
                }
            } else {
                object.put("code",0);
                object.put("msg","上传失败!");
                System.out.println("上传失败!");
                return object;
            }
        } catch (Exception e) {
            e.printStackTrace();
            object.put("code",-3);
            object.put("msg","上传出错!");
            return object;
        }
    }
    return object;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值