2013-07-07 87 views
0

因此,我使用Java通過FTP將文件上傳到我的VPS(Linux Centos 5 64位)。我使用的是上傳到我的VPS的代碼是更改ftp上傳位置

FTPClient client = new FTPClient(); 
    FileInputStream fis = null; 

    try { 
     client.connect(serverip); 
     client.login("user, pass); 
     client.setFileType(FTPClient.BINARY_FILE_TYPE); 

// Create an InputStream of the file to be uploaded 
     String filename = Shared.saveLocation + Shared.saveAs; 
     fis = new FileInputStream(filename); 

// Store file to server 
     client.storeFile(Shared.saveAs, fis); 
     client.logout(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      if (fis != null) { 
       fis.close(); 
      } 
      client.disconnect(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

現在的代碼工作,但我要的是改變地方的VPS它上傳文件。現在它是

SERVERIP/HERE

我有一些文件,所以想將其更改爲

SERVERIP /文件/ HERE

我怎麼能去這樣做?

+0

沒有人知道如何做到這一點? – user2526311

回答

2

您可以使用changeCurrentWorkingDirectory()方法更改爲所需的目錄。一旦你在那裏,你可以像以前一樣使用storeFile來編寫文件。

changeCurrentWorkingDirectory如果目錄更改成功,則返回true,否則返回false。它需要一個解釋爲目錄路徑的字符串。如果路徑以斜槓開始,則將其解釋爲從ftproot目錄開始的絕對路徑。否則它被解釋爲相對路徑。

修改後的代碼可能是這個樣子:

FTPClient client = new FTPClient(); 
FileInputStream fis = null; 

try 
{ 
    client.connect(serverip); 
    client.login("user, pass); 
    client.setFileType(FTPClient.BINARY_FILE_TYPE); 

    // change directory to serverip/file/ 
    if (client.changeWorkingDirectory("/file")) 
    {  
     // Create an InputStream of the file to be uploaded 
     String filename = Shared.saveLocation + Shared.saveAs; 
     fis = new FileInputStream(filename); 

     // Store file to server 
     client.storeFile(Shared.saveAs, fis); 
    } 
    client.logout(); 
} 
catch (IOException e) 
{ 
    e.printStackTrace(); 
} 
finally 
{ 
    try 
    { 
     if (fis != null) 
     { 
      fis.close(); 
     } 
     client.disconnect(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
} 
+0

像魅力一樣工作,謝謝。我會在19個小時後獎賞你的賞金,因爲那時它會讓我。 – user2526311