本文实例为大家分享了文件上传到ftp服务工具类,供大家参考,具体内容如下
直接引用此java工具类就好
进口java.io.File; 进口java.io.FileInputStream; 进口java.io.FileNotFoundException; 进口java.io.FileOutputStream; 进口java.io.IOException; 进口java.io.InputStream; 进口java.io.OutputStream; 进口org.apache.commons.net.ftp.FTP; 进口org.apache.commons.net.ftp.FTPClient; 进口org.apache.commons.net.ftp.FTPFile; 进口org.apache.commons.net.ftp.FTPReply;/* * * ftp上传下载工具类 * & lt; p>标题:FtpUtil * & lt; p>描述:& lt;/p> * & lt; p>公司:www.itcast.com * @author入云龙 * @date 2015年7月29日下午8:11:51 * @version 1.0 */公开课FtpUtil {/* * *描述:向FTP服务器上传文件 * @param主机FTP服务器主机名 * @param FTP港服务器端口 * @param FTP用户名登录账号 * @param FTP密码登录密码 * @param basePath FTP服务器基础目录 * @param filePath FTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath + filePath * @param文件名上传到FTP服务器上的文件名 * @param输入输入流 * @return成功返回真,否则返回错误的 */公共静态布尔还是(String主机,int端口,用户名的字符串,字符串密码字符串basePath, 文件名字符串filePath,字符串,InputStream输入){ 布尔结果=false; FTPClient ftp=new FTPClient (); 尝试{ int回复; ftp。连接(主机、端口);//连接FTP服务器//如果采用默认端口,可以使用ftp.connect(主机)的方式直接连接FTP服务器 ftp。登录(用户名、密码);//登录 回复=ftp.getReplyCode (); 如果(! FTPReply.isPositiveCompletion(应答)){ ftp.disconnect (); 返回结果; }//切换到上传目录 如果(! ftp.changeWorkingDirectory (basePath + filePath)) {//如果目录不存在创建目录 String [] dirs=filePath.split (“/?; 字符串tempPath=basePath; (字符串dir: dirs) { 如果(null==dir | |”“.equals (dir))继续; tempPath +=" + dir; 如果(! ftp.changeWorkingDirectory (tempPath)) { 如果(! ftp.makeDirectory (tempPath)) { 返回结果; 其他}{ ftp.changeWorkingDirectory (tempPath); } } } }//设置上传文件的类型为二进制类型 ftp.setFileType (FTP.BINARY_FILE_TYPE);//上传文件 如果(! ftp。storeFile(文件名,输入)){ 返回结果; } input.close (); ftp.logout (); 结果=true; }捕捉(IOException e) { e.printStackTrace (); 最后}{ 如果(ftp.isConnected ()) { 尝试{ ftp.disconnect (); }捕捉(IOException埃克斯波特学院){ } } } 返回结果; }/* * *描述:从FTP服务器下载文件 * @param主机FTP服务器主机名 * @param FTP港服务器端口 * @param FTP用户名登录账号 * @param FTP密码登录密码 * @param remotePath FTP服务器上的相对路径 * @param文件名要下载的文件名 * @param localPath下载后保存到本地的路径 * @return */公共静态布尔downloadFile (String主机,int端口,用户名的字符串,字符串密码字符串remotePath, 文件名字符串,字符串localPath) { 布尔结果=false; FTPClient ftp=new FTPClient (); 尝试{ int回复; ftp。连接(主机、端口);//如果采用默认端口,可以使用ftp.connect(主机)的方式直接连接FTP服务器 ftp。登录(用户名、密码);//登录 回复=ftp.getReplyCode (); 如果(! FTPReply.isPositiveCompletion(应答)){ ftp.disconnect (); 返回结果; } ftp.changeWorkingDirectory (remotePath);//转移到FTP服务器目录 FTPFile [] fs=ftp.listFiles (); (FTPFile ff: fs) { 如果(ff.getName () .equals(文件名)){ 文件localFile=新文件(localPath + " + ff.getName ()); OutputStream=新FileOutputStream (localFile); ftp.retrieveFile (ff.getName ()); is.close (); } } ftp.logout (); 结果=true; }捕捉(IOException e) { e.printStackTrace (); 最后}{ 如果(ftp.isConnected ()) { 尝试{ ftp.disconnect (); }捕捉(IOException埃克斯波特学院){ } } } 返回结果; } 公共静态void main (String [] args) { 尝试{ FileInputStream=new FileInputStream(新文件(“D: \ \ temp \ \ \ \ gaigeming.jpg形象”)); 布尔标志=还是(“192.168.25.133”,21岁的“ftpuser”,“ftpuser”、“/home/ftpuser/www/图片”、“/2015/01/21”,“gaigeming.jpg”); System.out.println(国旗); }捕捉(FileNotFoundException e) { e.printStackTrace (); } } }java实现上传和下载工具类