Java上传文件FTP服务器代码实例
FTP服务器(FileTransferProtocolServer)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP是FileTransferProtocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。
在实际的应用中,通常是通过程序来进行文件的上传。
1.实现java上传文件到ftp服务器中
2.新建maven项目
添加依赖
commons-net commons-net 3.3
3.实例代码:
packagecom.test.fto.demo;
/**
ftp链接常量
*/
publicclassFtp{
privateStringipAddr;
//ip地址
privateIntegerport;
//端口号
privateStringuserName;
//用户名
privateStringpwd;
//密码
privateStringpath;
//aaa路径
publicStringgetIpAddr(){
returnipAddr;
}
publicvoidsetIpAddr(StringipAddr){
this.ipAddr=ipAddr;
}
publicIntegergetPort(){
returnport;
}
publicvoidsetPort(Integerport){
this.port=port;
}
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
publicStringgetPwd(){
returnpwd;
}
publicvoidsetPwd(Stringpwd){
this.pwd=pwd;
}
publicStringgetPath(){
returnpath;
}
publicvoidsetPath(Stringpath){
this.path=path;
}
}
测试代码:
packagecom.test.fto.demo;
importorg.apache.commons.net.ftp.FTPClient;
importorg.apache.commons.net.ftp.FTPReply;
importorg.testng.annotations.Test;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.IOException;
publicclassFtpUtil{
privatestaticFTPClientftp;
/**
*获取ftp连接
*
*@paramf
*@return
*@throwsException
*/
publicstaticbooleanconnectFtp(Ftpf)throwsException{
ftp=newFTPClient();
booleanflag=false;
intreply;
if(f.getPort()==null){
ftp.connect(f.getIpAddr(),21);
}else{
ftp.connect(f.getIpAddr(),f.getPort());
}
ftp.login(f.getUserName(),f.getPwd());
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
reply=ftp.getReplyCode();
if(!FTPReply.isPositiveCompletion(reply)){
ftp.disconnect();
returnflag;
}
ftp.changeWorkingDirectory(f.getPath());
flag=true;
returnflag;
}
/**
*关闭ftp连接
*/
publicstaticvoidcloseFtp(){
if(ftp!=null&&ftp.isConnected()){
try{
ftp.logout();
ftp.disconnect();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
/**
*ftp上传文件
*
*@paramf
*@throwsException
*/
publicstaticvoidupload(Filef)throwsException{
if(f.isDirectory()){
ftp.makeDirectory(f.getName());
ftp.changeWorkingDirectory(f.getName());
String[]files=f.list();
for(Stringfstr:files){
Filefile1=newFile(f.getPath()+"/"+fstr);
if(file1.isDirectory()){
upload(file1);
ftp.changeToParentDirectory();
}else{
Filefile2=newFile(f.getPath()+"/"+fstr);
FileInputStreaminput=newFileInputStream(file2);
ftp.storeFile(file2.getName(),input);
input.close();
}
}
}else{
Filefile2=newFile(f.getPath());
FileInputStreaminput=newFileInputStream(file2);
ftp.storeFile(file2.getName(),input);
input.close();
}
}
@Test
publicstaticvoidtest()throwsException{
Ftpf=newFtp();
f.setIpAddr("yourip");
f.setUserName("username");
f.setPwd("password");
FtpUtil.connectFtp(f);
Filefile=newFile("F:/robotium-solo-5.6.1.jar");
FtpUtil.upload(file);//把文件上传在ftp上
System.out.println("上传文件完成。。。。");
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。