Cod*_*Guy 25 java ftp ftp-client apache-commons-net
我正在尝试做一个非常简单的文件上传.我想要一个可以上传我告诉它的任何文件的Java FTPClient.但pdf总是搞砸了,我的pdf编辑器(Adobe)不会打开它,说有一个I/O错误.
我正在使用以下课程:
import org.apache.commons.net.ftp.FTPClient;
....
FTPClient client = new FTPClient();
FileInputStream fis = null;
try {
client.connect("mydomain.com");
client.login("user", "password");
String filename = "myPDF.pdf";
fis = new FileInputStream(filename);
client.storeFile("temp.pdf", fis);
fis.close();
client.logout();
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用,我该如何解决?
小智 24
将其添加到您的文件中
ftp.setFileType(FTP.BINARY_FILE_TYPE, FTP.BINARY_FILE_TYPE);
ftp.setFileTransferMode(FTP.BINARY_FILE_TYPE);
Run Code Online (Sandbox Code Playgroud)
我对xlsx文件有同样的问题,这是一个很好的解决方案.
Chr*_*ton 10
人们经常忘记FTP有两种操作模式 - 一种用于文本文件,另一种用于二进制(图像)文件.在过去的好日子里,从命令行ftp客户端连接,我们会仔细记住在请求文件之前设置传输模式 - 或者我们遇到了你似乎遇到的那种问题.今天很多情况似乎默认为二进制,但显然不是你的.
您可能需要告诉您的ftp实现以二进制/图像模式传输.