上传与JAVA我的FTP服务器上后的空文件(Empty file after upload with

2019-09-21 00:48发布

我面临着一些问题,而试图将文件上传与Java我的FTP服务器上。 这里是我的代码功能:

public static void upload_files(String un, String pw, String ip, String f){
  try
    {
        FTPClient client = new FTPClient();
        client.connect(ip);
        client.login(un,pw);
        InputStream is = new FileInputStream(f);
        client.storeFile("test2",is);
        is.close();

    } catch(Exception e) {
        e.printStackTrace();
    }
    }

“F”是我要上传的文件的路径(即“C:\文件MyFile”)。 编译过程中没有错误,一个文件以及发送到服务器,但可悲的是空(0字节)。

我也注意到,它需要相当长的一段文字(约40岁)的一个简单的上传甚至认为我有一个很好的ISP。

我提前感谢所有的人谁可以帮助我。

问候,

Answer 1:

我认为这可能是是与文件传输的模式。 您可以设置trandfer模式为二进制。 有些时候,当你在ASCII发送的数据它会损坏。 请参阅本https://superuser.com/questions/82726/how-to-set-binary-mode-by-default-when-ftping-to-a-remote-site

它讲述了如何设置二进制模式的FTP命令客户端。 您将在FTPClient类也有类似的规定。

刚刚发现我认为类似的问题在这里回答FTPClient -爪哇,上传文件



Answer 2:

这似乎是这个问题已与FTPClient的实施做。 你确定类的工作原理是什么?

尝试上传到不同的服务器,或者使用不同的类,以找到失败的原因。

另外:你确定这是你的责任,关闭的FileInputStream? 我能想象得到.storeFile(…)方法关闭它本身,当它完成。



Answer 3:

添加这些行之前client.login ftpClient默认协议是只为你NEAD到specifie binnary模式等文件全文

client.enterLocalPassiveMode()
client.setFileType(FTP.BINARY_FILE_TYPE, FTP.BINARY_FILE_TYPE);
client.setFileTransferMode(FTP.BINARY_FILE_TYPE);


文章来源: Empty file after upload with JAVA on my ftp server