【问题标题】:Problem with java FTP uploadjava FTP上传的问题
【发布时间】:2011-05-17 19:15:28
【问题描述】:
public static void main(String[] args) throws SocketException, IOException{
        FTPClient client = new FTPClient();
        FileInputStream fis = null;

        client.connect("ftp.someserver.co.uk",21);
        boolean login = client.login("webmaster@someserver.co.uk",
                "mypassword");


        String filename = "C:/Users/NAVEEN~1/AppData/Local/Temp/engine_3018683681918436492.xml";
        fis = new FileInputStream(new File(filename));
        if(client.storeFile("myfile.xml", fis)){
            System.out.println("yes");
        }else{
            System.out.println("no");

        }
        client.logout();
        fis.close();
    }

这段代码正在上传我想要的文件,但没有上传它的所有内容。部分文件内容不存在!

编辑-1

好的,现在我创建了一个静态文件并尝试上传它,但又是同样的情况。

【问题讨论】:

  • 试试fis.close() 然后client.logout()
  • 文件名~ 和其他空格和其他字符可能有问题
  • 那么打印出来的是什么——是或否?是未成功完成还是声称已成功完成但未上传整个文件?
  • 你还应该有一个 try { } finally { } 块来关闭 FileInputStream 和 FTPClient。如果在操作过程中抛出异常,那么您可以孤立连接直到超时。
  • 嗯,它的打印是的,但是有些文件内容没有到达上传的文件。

标签: java xml upload ftp network-programming


【解决方案1】:

不确定您尝试上传的文件是如何生成的。但看起来它是一个临时文件。你确定它在从java读取时没有被删除/覆盖吗?为什么不直接在桌面上保留一个静态文件,然后尝试上传它以供试用。

【讨论】:

    【解决方案2】:

    我认为您可能需要 completePendingCommand。根据那里的示例,您可以通过获取输出流并自己处理字节副本来自己“推送”数据。

    http://commons.apache.org/net/apidocs/org/apache/commons/net/ftp/FTPClient.html#completePendingCommand()

    【讨论】:

    • @mad_programmer,你没有点击比尔发布的链接吗?那里有一个例子可以准确地展示如何使用它。
    • @mad_programmer 解释“不工作”是什么意思,还是有同样的问题,或者您收到错误消息?你确定文件的内容没问题?
    猜你喜欢
    • 2014-08-09
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    相关资源
    最近更新 更多