Java apache commons ftp客户端文件上载问题
我的机器上几乎没有excel文件。我想把这个excel文件上传到ftp。我正在使用ApacheCommonsFTPClinet。但当它上载文件时,文件已损坏,文件大小为零。这是示例程序 有人能告诉我哪里做错了吗Java apache commons ftp客户端文件上载问题,java,apache-commons-net,Java,Apache Commons Net,我的机器上几乎没有excel文件。我想把这个excel文件上传到ftp。我正在使用ApacheCommonsFTPClinet。但当它上载文件时,文件已损坏,文件大小为零。这是示例程序 有人能告诉我哪里做错了吗 public class App { private static final String server = "localhost"; private static final String username = "test"; private static f
public class App {
private static final String server = "localhost";
private static final String username = "test";
private static final String password = "test";
private static final String directory = "/home/files";
public static void main(String[] args) throws SocketException, IOException {
FTPClient f = new FTPClient();
f.connect(server);
f.login(username, password);
f.setFileType(FTPClient.BINARY_FILE_TYPE);
InputStream is = null;
is = new FileInputStream("c:\\tmp\\output.xls");
Boolean isStored = f.storeFile("status.xls", is);
is.close();
}
}
不要使用
f.setFileType(FTPClient.BINARY\u FILE\u类型)代码>删除该行
Excel文件不是二进制文件,它们应该以ascii格式传输,我认为这是apache commons FTPClient的默认格式
我还没有测试过这个。试试看
另外,更改是从InputStream
更改为FileInputStream
不要使用f.setFileType(FTPClient.BINARY\u FILE\u TYPE)代码>删除该行
Excel文件不是二进制文件,它们应该以ascii格式传输,我认为这是apache commons FTPClient的默认格式
我还没有测试过这个。试试看
另外,从InputStream
更改为FileInputStream
我没有收到任何错误消息,唯一的问题是文件已损坏,而不是数据正在写入。请发布您的错误。您确定/home/files/status.txt
在FTP服务器目录结构的上下文中有效吗?这看起来像是绝对路径,在服务器的文件存储根目录下可能无效。请参阅更新的代码,该代码现在正在生成excel文件,但仍带有一些无法读取的字符。请参阅我没有收到任何错误消息,唯一的问题是文件已损坏,而不是正在写入数据。您可以发布错误吗,请?您确定/home/files/status.txt
在FTP服务器目录结构的上下文中有效吗?这看起来像是绝对路径,在服务器的文件存储根目录下可能无效。请参阅更新的代码,该代码现在正在生成excel文件,但仍被一些无法读取的字符损坏请参阅No Success my friend。这次我没有看到不可读的内容,但我仍然在复制的文件中看到完整的数据。请确保在代码中,服务器名称不是localhost,对吗?如果您试图将其上载到的是linux服务器,请确保文件夹具有足够的权限(777)正确,我使用的是实际的主机名。回答roymustang86,我给了这个任务,所以它允许创建文件,但它被破坏了它是因为excel文件是在windows操作系统中创建的,然后通过ftp客户端复制到linux,它被破坏了?没有成功,我的朋友。这次我没有看到不可读的内容,但我仍然在复制的文件中看到完整的数据。请确保在代码中,服务器名称不是localhost,对吗?如果您试图将其上载到的是linux服务器,请确保文件夹具有足够的权限(777)正确,我使用的是实际的主机名。回答roymustang86,我给了这个任务,所以它允许创建文件,但它被破坏了它是不是因为excel文件是在windows操作系统中创建的,然后通过ftp客户端复制到linux,它被破坏了?