java ftp上传下载文件,如何把文件上传到ftp服务器
本文分享Java上传文件到ftp服务器的具体代码,供大家参考。具体内容如下
首先简单介绍一下什么是FTP,以及如何在自己的电脑上搭建一个ftp服务器;
—— FTP是文件传输协议(FTP)是一种客户端/服务器协议,用于向主机传输文件或与主机交换文件。它可以使用用户名和密码进行身份验证。匿名FTP允许用户在没有用户ID或密码的情况下从互联网访问文件、程序和其他数据。简而言之就是方便一个可以上传下载文件的地方。
要实现上传文件,首先要在本地创建一个ftp服务器(win10系统);
首先,在本地创建另一个用户。
第二,创建FTP目录
第三,账号绑定FTP目录,登录验证
4.FTP目录创建后,可以通过你选择的ip访问FTP ://ip地址,账号密码就是你设置的用户的账号密码。
下面写javaFTP上传工具类代码,复制即可。
Maven依赖性
dependency groupId commons-net/groupId artifactId commons-net/artifactId version 3.1/version/dependency public class FTP util {/* * * description :将文件上传到FTP服务器* @param host FTP服务器主机名* @param port FTP服务器端口* @param用户名FTP登录帐户* @param password FTP登录密码* @param basePath FTP服务器基目录* @param filePath FTP服务器文件存储路径文件的路径是base Path file Path * @ param filename * @FTP client FTP=new FTP client();尝试{ int replyftp.connect(主机,端口);//连接FTP服务器//如果采用默认端口,可以使用ftp.connect(host)直接连接FTP服务器ftp.login(用户名,密码);//登录reply=FTP . getreplycode();如果(!FTP preply . ispositivecompletion(reply)){ FTP . disconnect();返回结果;}//如果(!FTP . change working directory(base path file path)){//如果目录不存在,创建一个目录字符串[]dirs=file path . split(/);String tempPath=basePathfor(String dir : dirs){ if(null==dir 。equals(dir))继续;tempPath=/ dir;如果(!FTP . changeworkingddirectory(tempPath)){//
进不去目录,说明该目录不存在 if (!ftp.makeDirectory(tempPath)) { //创建目录 //如果创建文件目录失败,则返回 System.out.println("创建文件目录"+tempPath+"失败"); return result; } else { //目录存在,则直接进入该目录 ftp.changeWorkingDirectory(tempPath); } } } } //设置上传文件的类型为二进制类型 ftp.setFileType(FTP.BINARY_FILE_TYPE); //上传文件 if (!ftp.storeFile(filename, input)) { return result; } input.close(); ftp.logout(); result = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return result; } /** * Description: 从FTP服务器下载文件 * @param host FTP服务器hostname * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param remotePath FTP服务器上的相对路径 * @param fileName 要下载的文件名 * @param localPath 下载后保存到本地的路径 * @return */ public static boolean downloadFile(String host, int port, String username, String password, String remotePath, String fileName, String localPath) { boolean result = false; FTPClient ftp = new FTPClient(); try { int reply; ftp.connect(host, port); // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器 ftp.login(username, password);// 登录 reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); return result; } ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录 FTPFile[] fs = ftp.listFiles(); for (FTPFile ff : fs) { if (ff.getName().equals(fileName)) { File localFile = new File(localPath + "/" + ff.getName()); OutputStream is = new FileOutputStream(localFile); ftp.retrieveFile(ff.getName(), is); is.close(); } } ftp.logout(); result = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return result; } //ftp上传文件测试main函数 public static void main(String[] args) { //上传 try { FileInputStream in=new FileInputStream(new File("D:\text.txt")); boolean flag = uploadFile("ip", 21, "username", "password", "/text","/wenjian", "hello.txt", in); System.out.println(flag); } catch (FileNotFoundException e) { e.printStackTrace(); } //下载 boolean b = downloadFile("ip", 21, "username", "password", "/text/wenjian", "hello.txt", "D://"); System.out.println(b); }java代码中都有注释,就不解释了,下面有一个main 方法,可以直接进行测试。以上就是使用java向FTP文件上传的全部内容。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。