1.根据url下载文件到本地()
public Boolean downLoad(
String url,//服务器ip
String port,//服务器端口
String userName,//登录名
String passWord,//密码
String path,//服务器下相对路径
String localPath;//保存在本地的路径
String fileName,//服务器中文件名
String name//保存本地后的文件名
){
Boolean result=false;
int reply;
FTPClient ftp=new FTPClient();
ftp.setConntect(url,port);
ftp.setDefaultPort(port);
ftp.setControllEncoding("utf-8");
ftp.login(userName,passWord);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
reply=ftp.getReplyCode();
if(!FTPReply.isPositiveComplication(reply)){
ftp.disconnect();
return result;
}
String dir="/"+path;
ftp.makeDerictory(new String(dir.getBytes("utf-8"),"ios-8895-1" )); //不存在目录则创建一个
ftp.changeWokingDirectory(paht);
ftp.enterLocalPassiveMode();
FtpFile[] files=ftp.listFiles();
for(FtpFile file:files){
if(file.getName().equals(fileName)){
File localFile=new File(localPath+"/"+name);
OutputStream os=new FileOutputStream(localFile);
ftp.retreiveFile(file.getName,os);
os.close();
}
}
ftp.logout();
result=true;
return result;
}
2.ftp上传文件
前端一般用<input type="file"/>
控制层用multipartfile flie接收
public boolean upload(
String url.//服务器ip
String port,//服务器端口
String userName,//登录名
String passWorf,//密码
String fileName,//保存在服务器的文件名
INputStream input//输入流
){
boolean result=false;
int reply;
FtpClient ftp=new FtpClient();
ftp.setConntect(url,port);
ftp.setDefaultPort(port);
ftp.setControllEncoding("utf-8");
ftp.login(userName,passWord);
ftp.setFileType(FYP_BINARY_FILE_TYPE);
reply=ftp.getReplyCode();
if(!FTPREPLY.isPositiveCompleion(reply)){
ftp.disconnect();
return result;
}
String dir="/"+path;
ftp.makeDirectory(new String(dir.getBytes("utf-8"),"iso-8859-1"));
ftp.changeWorkingDirectory(path);
ftp.enterLocalPassiveMode();
boolean ts = ftp.storeFile(filename, input);
if(ts){
input.close();
ftp.logout();
}
success = true;
}