Heim  >  Artikel  >  Java  >  Beispielcode für den FTP-Upload

Beispielcode für den FTP-Upload

PHP中文网
PHP中文网Original
2017-06-20 09:51:251377Durchsuche

/**
* FTP-Upload-Tool-Klasse
*
*/
public class FtpUtil {
static Logger logger = Logger.getLogger(FtpUtil.class.getName());
   private String ip;
   private String Benutzername;
   private String-Passwort;
   private int port = -1;
   private String path;
   private OutputStream os = null;
   private FileInputStream is = null;
privater FTPClient ftpClient ;
public FTPClient getftpClient() { return ftpClient; }
public void setftpClient(FTPClient ftpClient) {
this.ftpClient = ftpClient;
}
public FtpUtil(){

}
public FtpUtil(String serverIP, String Benutzername, String Passwort) {
 this.ip = serverIP;
 this.username = Benutzername;
 this.password = Passwort;
}

public FtpUtil(String serverIP, int Port, String-Benutzername, String-Passwort) {
 this.ip = serverIP;
 this.username = username;
 this.password = Passwort;
 this.port = port;
 this. ftpClient= new FTPClient();
}
/**
*
* @return Ob eine Verbindung zum Server hergestellt werden soll
*/
public boolean ftpLogin() {  
boolean isLogin = false;  
FTPClientConfig ftpClientConfig = new FTPClientConfig();  
ftpClientConfig.setServerTimeZoneId(TimeZone.getDefault().getID());  
this.ftpClient.setControlEncoding("GBK");  
this.ftpClient.configure(ftpClientConfig);  
try {    
if (this.port > 0) {    
this.ftpClient.connect(this.ip, this.port);    
}else {    
this.ftpClient.connect(this.ip);    
}  
int reply = this.ftpClient.getReplyCode();    
if (!FTPReply.isPositiveCompletion(reply)) {    
this.ftpClient.disconnect();
logger.info("登录FTP服务失败!");  
return isLogin;    
}    
if(this.ftpClient.login(this.username, this.password)){
this.ftpClient.enterLocalPassiveMode(); // 设置传输协议        
this.ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);
logger.info(this.username + „成功登陆FTP服务器“);  
isLogin = true;
}else{
logger.info(this.username + "登录FTP服务失败!");
}
}catch (Exception e) {    
e.printStackTrace();  
logger.error( e.getMessage());  
}  
this.ftpClient.setBufferSize(1024 * 2);  
this.ftpClient.setDataTimeout(30 * 1000);  
return isLogin;  
}
/**
* @Exit Server-Link schließen
*/  
public void ftpLogOut() {  
if (null != this.ftpClient && this.ftpClient.isConnected()) {    
try {
boolean reuslt = this.ftpClient.logout();// 退出FTP服务器      
if (reuslt) {  
logger.info("成功退出服务器");  
}    
}catch (IOException e) {    
e.printStackTrace();  
logger.warn("退出FTP服务器异常!" + e.getMessage());    
}finally {    
try {      
this.ftpClient.disconnect();
}catch (IOException e) {      
e.printStackTrace();
logger.error("FTP-Fehler");    
}    
}  
}  
}
/**
* FTP-Datei hochladen
* @param localFile Lokale Datei
* @param romotUpLoadePath Serverpfad hochladen
*/  
public boolean uploadFile(File localFile, String romotUpLoadePath) {  
BufferedInputStream inStream = null;  
boolean success = false;  
try {    
this.ftpClient.changeWorkingDirectory(romotUpLoadePath);
inStream = new BufferedInputStream(new FileInputStream(localFile));  
success = this.ftpClient.storeFile(localFile.getName(), inStream);    
if (success == true) {  
System.out.println(localFile.getName() + "上传成功");///
return success;    
}  
}catch (FileNotFoundException e) {    
e.printStackTrace();  
}catch (IOException e) {    
e.printStackTrace();  
}finally {    
if (inStream != null) {    
try {      
inStream.close();    
}catch (IOException e) {      
e.printStackTrace();    
}    
}  
}  
Erfolg zurückgeben;  
}  

/**Ordner hochladen
* @param localDirectory Lokaler Ordner
* @param remoteDirectoryPath Remote-Pfad
*/  
public boolean uploadDirectory(String localDirectory,String remoteDirectoryPath) {  
File src = new File(localDirectory);  
System.out.println(src.getName());
try {    
remoteDirectoryPath = remoteDirectoryPath + src.getName() + "/";    
boolean makeDirFlag = ftpClient.makeDirectory(remoteDirectoryPath);    
System.out.println("localDirectory : " + localDirectory);    
System.out.println("remoteDirectoryPath : " + remoteDirectoryPath);    
System.out.println("src.getName() : " + src.getName());    
System.out.println("remoteDirectoryPath : " + remoteDirectoryPath);    
System.out.println("makeDirFlag : " + makeDirFlag);  
// ftpClient.listDirectories();  
}catch (IOException e) {    
e.printStackTrace();
}  
File[] allFile = src.listFiles();
if(allFile.length==0||allFile.length>0){
for (int currentFile = 0;currentFile < allFile.length;currentFile++) {    
if (!allFile[currentFile] .isDirectory()) {    
String srcName = allFile[currentFile].getPath().toString();    
uploadFile(new File(srcName), remoteDirectoryPath);    
}
}  
for (int currentFile = 0;currentFile < allFile.length;currentFile++) {    
if (allFile[currentFile].isDirectory()) {
uploadDirectory(allFile[ currentFile].getPath().toString(),  //递归      
remoteDirectoryPath);    
}  
}  
}
/*for (int currentFile = 0;currentFile < allFile.length;currentFile++) {    
if (!allFile[currentFile].isDirectory()) {
String srcName = allFile[currentFile].getPath().toString();    
uploadFile(new File(srcName), remoteDirectoryPath);    
}
}  
for (int currentFile = 0;currentFile < allFile.length;currentFile++) {    
if (allFile[currentFile].isDirectory()) {
uploadDirectory(allFile[ currentFile].getPath().toString(),  //递归      
remoteDirectoryPath);    
}  
}   */
return true;  
}  

Das obige ist der detaillierte Inhalt vonBeispielcode für den FTP-Upload. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn