Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java apache commons ftp客户端文件上载问题_Java_Apache Commons Net - Fatal编程技术网

Java apache commons ftp客户端文件上载问题

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

我的机器上几乎没有excel文件。我想把这个excel文件上传到ftp。我正在使用ApacheCommonsFTPClinet。但当它上载文件时,文件已损坏,文件大小为零。这是示例程序

有人能告诉我哪里做错了吗

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,它被破坏了?