主要就是把对ftp的访问封装成一个常用类就行了。
首先是要学会怎么Java怎么用,我是将其封装成我自己的一个工具包,这样下次使用的时候就可以直接拿出来用了。
packagecom.utils;
importjava.io.InputStream;
/**
*
*@authorPanpan
*
*/
publicclassFtpBean{
privateStringftpUrl;//ftp地址
privateintport;//端口号是21
privateStringuserName;//ftp用户名
privateStringpassWord;//ftp密码
privateStringftpPath;//ftp上可以访问的文件路径
privateStringfileName;//文件名
privateInputStreaminput;//输入流(用做上传文件或在ftp新建文件使用)
privateStringlocalPath;//用于从ftp上下载文件存放的路径
publicFtpBean(){
super();
//TODOAuto-generatedconstructorstub
}
publicFtpBean(StringftpUrl,intport,StringuserName,StringpassWord,StringftpPath,StringfileName,
InputStreaminput,StringlocalPath){
super();
this.ftpUrl=ftpUrl;
this.port=port;
this.userName=userName;
this.passWord=passWord;
this.ftpPath=ftpPath;
this.fileName=fileName;
this.input=input;
this.localPath=localPath;
}
}
packagecom.utils;
importjava.io.ByteArrayInputStream;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.io.UnsupportedEncodingException;
importorg.apache.commons.net.ftp.FTP;
importorg.apache.commons.net.ftp.FTPClient;
importorg.apache.commons.net.ftp.FTPFile;
importorg.apache.commons.net.ftp.FTPReply;
importorg.junit.Test;
publicclassFtpUtil{
/**
*Description:向FTP服务器上传文件
*@Version1.0Jul27,20084:31:09PMby崔红保(cuihongbao@d-heaven.com)创建
*@paramurlFTP服务器hostname
*@paramportFTP服务器端口
*@paramusernameFTP登录账号
*@parampasswordFTP登录密码
*@parampathFTP服务器保存目录
*@paramfilename上传到FTP服务器上的文件名
*@paraminput输入流
*@return成功返回true,否则返回false
*/
publicstaticbooleanuploadFile(FtpBeanftpBean){
booleansuccess=false;
FTPClientftp=newFTPClient();
try{
intreply;
ftp.connect(ftpBean.getFtpUrl(),ftpBean.getPort());//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(ftpBean.getUserName(),ftpBean.getPassWord());//登录
ftp.setFileType(FTP.BINARY_FILE_TYPE);//设置文件类型为binary
reply=ftp.getReplyCode();
if(!FTPReply.isPositiveCompletion(reply)){
ftp.disconnect();
returnsuccess;
}
ftp.changeWorkingDirectory(ftpBean.getFtpPath());
//設置為被動模式
//ftp.enterLocalPassiveMode();
ftp.storeFile(ftpBean.getFileName(),ftpBean.getInput());
ftpBean.getInput().close();
ftp.logout();
success=true;
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(ftp.isConnected()){
try{
ftp.disconnect();
}catch(IOExceptionioe){
}
}
}
returnsuccess;
}
}
原文链接:https://blog.csdn.net/lp15203883326/article/details/80657642