我正在尝试将文件上传到Java类中的FTP服务器。 我使用apache库:org.apache.commons.net.ftp.FTPClient。 上传功能正常,直到我尝试上传XLS(Excel)文件。 特别是,当我上传它时,文件被上传,但它似乎已损坏。实际上它的大小与原始大小不同,当我尝试打开它时,它无法正确打开并且不显示所有数据。
以下是我使用的代码中的一部分:
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();
}
非常感谢您提供任何帮助。
答案 0 :(得分: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);
}