2011-05-17 104 views
0
public static void main(String[] args) throws SocketException, IOException{ 
     FTPClient client = new FTPClient(); 
     FileInputStream fis = null; 

     client.connect("ftp.someserver.co.uk",21); 
     boolean login = client.login("[email protected]", 
       "mypassword"); 


     String filename = "C:/Users/NAVEEN~1/AppData/Local/Temp/engine_3018683681918436492.xml"; 
     fis = new FileInputStream(new File(filename)); 
     if(client.storeFile("myfile.xml", fis)){ 
      System.out.println("yes"); 
     }else{ 
      System.out.println("no"); 

     } 
     client.logout(); 
     fis.close(); 
    } 

這段代碼正在上傳文件,因爲我想要,但沒有上傳它的所有內容。一些文件內容不在那裏!java FTP上傳問題

編輯-1

確定現在我創建了一個靜態文件,並嘗試上傳,但同樣它同樣的情況。

+0

嘗試做'fis.close()'然後'client.logout()' – 2011-05-17 19:19:46

+0

可能是問題與文件名'〜'和其他空格和其他字符 – 2011-05-17 19:19:46

+0

所以什麼東西被打印出來 - 是或否?它沒有成功完成,還是它聲稱它正在成功完成,但沒有上傳整個文件? – QuantumMechanic 2011-05-17 19:21:40

回答

2

不確定您正在嘗試上傳的文件是如何生成的。但看起來它是一個臨時文件。你確定它從java讀取時沒有被刪除/覆蓋嗎?你爲什麼不在桌面上保留一個靜態文件,並嘗試上傳它進行試用。

+0

我試過了,但仍然沒有成功 – Maverick 2011-05-17 19:43:01

2

我想你可能需要completePendingCommand。根據那裏的例子,你可以通過獲取輸出流並自己處理字節拷貝來自己「推送」數據。

http://commons.apache.org/net/apidocs/org/apache/commons/net/ftp/FTPClient.html#completePendingCommand()

+0

我不知道如何使用這個命令! – Maverick 2011-05-17 19:42:50

+0

@mad_programmer,你沒有點擊Bill發佈的鏈接嗎?有一個例子顯示瞭如何使用它。 – Jesper 2011-05-17 21:40:14

+0

@Jesper我試過這個代碼,但它仍然不能正常工作。 – Maverick 2011-05-17 21:56:35