900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 将文件上传至ftp服务器 FTP文件上传工具类 将文件上传至服务器指定目录

将文件上传至ftp服务器 FTP文件上传工具类 将文件上传至服务器指定目录

时间:2019-01-27 06:03:24

相关推荐

将文件上传至ftp服务器 FTP文件上传工具类 将文件上传至服务器指定目录

将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器
需要配置修改的点:
1. 服务器ip端口(服务器ip 端口22/21)。
2. 服务器账号密码(服务器登录用户名密码)。
3. 上传路径(写入的路径会去检查是否存在,若存在则在路径下继续深入,不存在则创建)。
4. 下面的注释很全面很清楚,如遇问题,可留言。

@Slf4j@Componentpublic class FtpUtils {/*** @param 文件* @return*/public String ftpUpload(File file){FTPClient ftp = new FTPClient();String uploadPath ="";//文件上传的路径String state = "";//文件上传状态try {//配置表中取出ftp服务器所在的ip和服务的端口String ip = "192.168.11.111";//ftp服务器的ipint port = 21;//ftp服务器的端口/*** 这里修改存放路径*/uploadPath ="aaa/bbb/ccc/";//文件存放的路径名ftp.connect(ip, port);//连接ftp服务器ftp.login("userName", "passWord");//登录// ftp.connect("432.8.129.66",21);// ftp.login("ubuntu","root");//检验是否连接成功int reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {log.info("连接失败");return "99999";}uploadPath = uploadPath;//更改文件保存的目录// ftp.changeWorkingDirectory("/");//判断文件夹 创建文件夹this.createDir(uploadPath,ftp);// ftp.makeDirectory(uploadPath);log.info("文件上传的路径:ftp服务器根目录"+uploadPath+file.getName());FileInputStream is = new FileInputStream(file);//以第一个参数作为文件名,ftp.enterLocalPassiveMode();ftp.setControlEncoding("UTF-8");if(ftp.storeFile(new String(file.getName().getBytes("UTF-8")), is)){log.info("上传成功");state = "0000";}else{log.info("上传失败");state = "9999";}ftp.logout();is.close();} catch (SocketException e) {// connec报的e.printStackTrace();log.info("服务器连接异常!!");}catch (IOException e) {// connec报的连接异常e.printStackTrace();log.info("文件服务器连接异常!!");}finally{//关闭ftp连接if(ftp.isConnected()){try {ftp.disconnect();} catch (IOException e) {e.printStackTrace();}}}//返回上传状态return state;}public void createDir(String remote,FTPClient ftpClient)throws UnsupportedEncodingException,IOException{//将传进来的remote前面的目录路径拿出来String directory = remote.substring(0, remote.lastIndexOf("/") + 1);if (!directory.equalsIgnoreCase("/") && !ftpClient.changeWorkingDirectory(new String(directory.getBytes("GBK"), "iso-8859-1"))) {// 如果远程目录不存在,则递归创建远程服务器目录int start = 0;int end = 0;//地址开头为/ start=1if (directory.startsWith("/")) {start = 1;} else {start = 0;}end = directory.indexOf("/", start);while (true) {String subDirectory = new String(remote.substring(start, end).getBytes("GBK"),"iso-8859-1");if (!ftpClient.changeWorkingDirectory(subDirectory)) {if (ftpClient.makeDirectory(subDirectory)) {ftpClient.changeWorkingDirectory(subDirectory);} else {System.out.println("创建目录失败");}}start = end + 1;end = directory.indexOf("/", start);// 检查所有目录是否创建完毕if (end <= start) {break;}}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。