2011-09-14 159 views
2

我正嘗試將文件上傳到Java類中的FTP服務器。 我使用apache庫:org.apache.commons.net.ftp.FTPClient。 上傳功能正常工作,直到我嘗試上傳XLS(Excel)文件。 特別是,當我上傳它時,文件被上傳,但它似乎已損壞。實際上,它的大小與原始大小不同,當我嘗試打開它時,它不能正確打開並且不顯示所有數據。Java FTP xls文件上傳

這裏是我使用的代碼部分:

FTPClient ftpClient = new FTPClient(); 
File[] fileList;fileList = localFilePath.listFiles(); 
for (File file : fileList) { 
    String fileName = file.getName(); 
    FileInputStream fileInputStream = new FileInputStream(file); 
    ftpClient.storeFile(fileName, fileInputStream); 
    fileInputStream.close(); 
} 

非常感謝你對任何形式的幫助。

回答

4

我解決了使用建議在此線程的問題:

Transfer raw binary with apache commons-net FTPClient?

所有我需要做的是設置非.txt文件的二進制文件方式:

if (fileExtension.equals("txt")) { 
    ftpClient.setFileType(FTPClient.ASCII_FILE_TYPE); 
} else { 
    ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); 
} 
+0

非常感謝你!另外,作爲附註,您可以直接從類FTP而不是FtpClient訪問這些常量...... – spauny