java实现上传和下载工具类
本文实例为大家分享了文件上传到ftp服务工具类,供大家参考,具体内容如下
直接引用此java工具类就好
importjava.io.File; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.FileOutputStream; importjava.io.IOException; importjava.io.InputStream; importjava.io.OutputStream; importorg.apache.commons.net.ftp.FTP; importorg.apache.commons.net.ftp.FTPClient; importorg.apache.commons.net.ftp.FTPFile; importorg.apache.commons.net.ftp.FTPReply; /** *ftp上传下载工具类 *Title:FtpUtil
*Description:
*Company:www.itcast.com
*@author入云龙 *@date2015年7月29日下午8:11:51 *@version1.0 */ publicclassFtpUtil{ /** *Description:向FTP服务器上传文件 *@paramhostFTP服务器hostname *@paramportFTP服务器端口 *@paramusernameFTP登录账号 *@parampasswordFTP登录密码 *@parambasePathFTP服务器基础目录 *@paramfilePathFTP服务器文件存放路径。例如分日期存放:/2015/01/01。文件的路径为basePath+filePath *@paramfilename上传到FTP服务器上的文件名 *@paraminput输入流 *@return成功返回true,否则返回false */ publicstaticbooleanuploadFile(Stringhost,intport,Stringusername,Stringpassword,StringbasePath, StringfilePath,Stringfilename,InputStreaminput){ booleanresult=false; FTPClientftp=newFTPClient(); try{ intreply; ftp.connect(host,port);//连接FTP服务器 //如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器 ftp.login(username,password);//登录 reply=ftp.getReplyCode(); if(!FTPReply.isPositiveCompletion(reply)){ ftp.disconnect(); returnresult; } //切换到上传目录 if(!ftp.changeWorkingDirectory(basePath+filePath)){ //如果目录不存在创建目录 String[]dirs=filePath.split("/"); StringtempPath=basePath; for(Stringdir:dirs){ if(null==dir||"".equals(dir))continue; tempPath+="/"+dir; if(!ftp.changeWorkingDirectory(tempPath)){ if(!ftp.makeDirectory(tempPath)){ returnresult; }else{ ftp.changeWorkingDirectory(tempPath); } } } } //设置上传文件的类型为二进制类型 ftp.setFileType(FTP.BINARY_FILE_TYPE); //上传文件 if(!ftp.storeFile(filename,input)){ returnresult; } input.close(); ftp.logout(); result=true; }catch(IOExceptione){ e.printStackTrace(); }finally{ if(ftp.isConnected()){ try{ ftp.disconnect(); }catch(IOExceptionioe){ } } } returnresult; } /** *Description:从FTP服务器下载文件 *@paramhostFTP服务器hostname *@paramportFTP服务器端口 *@paramusernameFTP登录账号 *@parampasswordFTP登录密码 *@paramremotePathFTP服务器上的相对路径 *@paramfileName要下载的文件名 *@paramlocalPath下载后保存到本地的路径 *@return */ publicstaticbooleandownloadFile(Stringhost,intport,Stringusername,Stringpassword,StringremotePath, StringfileName,StringlocalPath){ booleanresult=false; FTPClientftp=newFTPClient(); try{ intreply; ftp.connect(host,port); //如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器 ftp.login(username,password);//登录 reply=ftp.getReplyCode(); if(!FTPReply.isPositiveCompletion(reply)){ ftp.disconnect(); returnresult; } ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录 FTPFile[]fs=ftp.listFiles(); for(FTPFileff:fs){ if(ff.getName().equals(fileName)){ FilelocalFile=newFile(localPath+"/"+ff.getName()); OutputStreamis=newFileOutputStream(localFile); ftp.retrieveFile(ff.getName(),is); is.close(); } } ftp.logout(); result=true; }catch(IOExceptione){ e.printStackTrace(); }finally{ if(ftp.isConnected()){ try{ ftp.disconnect(); }catch(IOExceptionioe){ } } } returnresult; } publicstaticvoidmain(String[]args){ try{ FileInputStreamin=newFileInputStream(newFile("D:\\temp\\image\\gaigeming.jpg")); booleanflag=uploadFile("192.168.25.133",21,"ftpuser","ftpuser","/home/ftpuser/www/images","/2015/01/21","gaigeming.jpg",in); System.out.println(flag); }catch(FileNotFoundExceptione){ e.printStackTrace(); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。