2011-09-14 158 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