龙空技术网

Springboot整合FTP实现上传功能

it小资 640

前言:

目前小伙伴们对“java上传文件ftp”大致比较关切,朋友们都需要知道一些“java上传文件ftp”的相关资讯。那么小编也在网络上汇集了一些有关“java上传文件ftp””的相关文章,希望姐妹们能喜欢,小伙伴们快快来了解一下吧!

1、在pom中添加maven的坐标

<dependency>      <groupId>commons-fileupload</groupId>      <artifactId>commons-fileupload</artifactId>      <version>1.3.3</version></dependency><dependency>      <groupId>commons-net</groupId>      <artifactId>commons-net</artifactId>      <version>3.6</version></dependency>

2、创建上传的工具类

 public static boolean uploadFileFtp(String host, int port, String username, String password, String basePath,                                        String filePath, String filename, InputStream input) {        boolean result = false;        FTPClient ftp = new FTPClient();        try {            int reply;            ("UTF-8");//解决上传后文件名中文乱码问题            (host, port);// 连接FTP服务器            // 如果采用默认端口,可以使用的方式直接连接FTP服务器            (username, password);// 登录            reply = ;            System.out.println(reply);            if (!FTPReply.isPositiveCompletion(reply)) {                ;                return result;            }            //切换到上传目录            if (!) {                //如果目录不存在创建目录                String[] dirs = filePath.split("/");                String tempPath = basePath;                for (String dir : dirs) {                    if (null == dir || "".equals(dir)) continue;                    tempPath += "/" + dir;                    if (!) {                        if (!) {                            return result;                        } else {                            ;                        }                    }                }            }            //设置为被动模式            ;            //设置上传文件的类型为二进制类型            ;            //上传文件            if (!(filename, input)) {                return result;            }            input.close();            ;            result = true;        } catch (IOException e) {            e.printStackTrace();        } finally {            if () {                try {                    ;                } catch (IOException ioe) {                }            }        }        return result;    }

3、参数详解

String host 主机名

Int port 端口

String username 用户名

String password 密码

String basePath 基础路劲

String filePath 文件路劲

String filename 文件名称

InputStream input 文件的输入流

(username, password);// 登录

reply = ; reply =230表示登录成功

如果reply 不等于230 则是用户信息设置的问题

如果在切换目录时报错 则需要修改系统的设置 详情请看我的上一篇你还记得她吗-FTP

有具体的配置处理

4、Java上传代码

@RequestMapping("/uploadToFtp")   @ResponseBody   public AjaxResult uploadToFtp(HttpServletRequest request, HttpServletResponse response) throws Exception {       Map<String, Object> resMap = new HashMap<String, Object>();       // 创建上传路径       String relative = FTP_FILEPATH;       MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;       Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();       Iterator<String> it = fileMap.keySet().iterator();       String img="";       int  flag=0;       if(!fileMap.isEmpty()){           while(it.hasNext()) {               String fileName = it.next();               MultipartFile item = fileMap.get(fileName);               if (!item.isEmpty()) {                   flag=flag+1;                   String uuid = UUID.randomUUID().toString().replaceAll("-", "");                   String name = item.getOriginalFilename();                   String suffix = name.substring(name.lastIndexOf("."));                   String newName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + suffix;                   InputStream input = item.getInputStream();                   boolean uploadFileFtp = FtpUtils.uploadFileFtp(FTP_SERVER, FTP_PORT, FTP_USER, FTP_PASS, FTP_BASEPATH, FTP_FILEPATH, uuid + newName, input);                   if(uploadFileFtp){                       resMap.put(item.getName() + "_relative", relative + "/" + uuid + newName);                       img=relative + "/" + uuid + newName;                   }else{                       return AjaxResult.error("上传失败!!!");                   }               }else{                   return AjaxResult.error("数据为空!!!");               }           }       }else{           return AjaxResult.error("数据为空!!!");       }       if(flag==1){           return AjaxResult.success("上传成功",img);       }else{           return AjaxResult.success("上传成功",resMap);       }   }

以上为整个上传逻辑的代码 其中有几个注入的字符串在配置文件中编写即可

标签: #java上传文件ftp #ftp上传和http上传 #ajax传url参数乱码 #java上传文件到ftp