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;
}