Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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的Ftp服务器上上载?_Java_Ftp_Apache Commons_Ftp Client - Fatal编程技术网

文件未在java的Ftp服务器上上载?

文件未在java的Ftp服务器上上载?,java,ftp,apache-commons,ftp-client,Java,Ftp,Apache Commons,Ftp Client,大家好,我正在做一个项目,我需要用java独立应用程序在ftp服务器上上传文件 import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.SocketException; import org.apache.commons.io.IOUtils; import org.apache.com

大家好,我正在做一个项目,我需要用java独立应用程序在ftp服务器上上传文件

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.SocketException;

import org.apache.commons.io.IOUtils;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;

public class Ftpdemo {  


     public static void main(String args[]) {  

      // get an ftpClient object  
      FTPClient ftpClient = new FTPClient();  
      ftpClient.setConnectTimeout(300);
      FileInputStream inputStream = null;  

      try {  
       // pass directory path on server to connect  
       ftpClient.connect("ftp.mydomain.in");  

       // pass username and password, returned true if authentication is  
       // successful  
       boolean login = ftpClient.login("myusername", "mypassword");  

       if (login) {  
        System.out.println("Connection established...");  
        ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

        ftpClient.enterLocalPassiveMode();

        inputStream = new FileInputStream("/home/simmant/Desktop/mypic.png");  

        boolean uploaded = ftpClient.storeFile("user_screens/test3.png",inputStream);



              if (uploaded) {  
         System.out.println("File uploaded successfully !");  
        } else {  
         System.out.println("Error in uploading file !");  
        }  

        // logout the user, returned true if logout successfully  
        boolean logout = ftpClient.logout();  
        if (logout) {  
         System.out.println("Connection close...");  
        }  
       } else {  
        System.out.println("Connection fail...");  
       }  

      } catch (SocketException e) {  
       e.printStackTrace();  
      } catch (IOException e) {  
       e.printStackTrace();  
      } finally {  
       try {  
        ftpClient.disconnect();  
       } catch (IOException e) {  
        e.printStackTrace();  
       }  
      }  
     }


    }  

对于1或2 kb的数据,它可以正常工作,但当我尝试上载50 kb和100 kb的文件时,它就不能正常工作。上载到服务器上的图像为空

据我所知,代码没有问题。正如您所说,1或2 kb的数据上传工作正常。所以,在我看来,你的互联网有问题。可能是上传50KB或更大的文件太慢了。

据我所知,代码没有问题。正如您所说,1或2 kb的数据上传工作正常。所以,在我看来,你的互联网有问题。上载50 kb或更大的文件可能太慢。

您的代码没有任何错误,只是文件或internet速度有问题。这里的代码工作正常,并且建议不要直接使用FTP详细信息。请避免从应用程序中使用这些内容。您有更好的选择,可以为与服务器相关的应用程序使用web服务东西
祝您好运

您的代码没有任何错误,只是文件或internet速度有问题。代码在这里运行良好,并且建议不要直接使用FTP详细信息。请避免从应用程序中使用这些内容。您可以更好地选择使用web服务来处理与服务器相关的内容。
祝您好运

您似乎没有正确创建连接实例。 请参考我的工作代码:

public class FTPUploader {
    FTPClient ftp = null;
    public FTPUploader() throws Exception {
        ftp = new FTPClient();
        ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(new FileOutputStream("c:\\ftp.log"))));
        int reply;
        ftp.connect(Constant.FTP_HOST);
        reply = ftp.getReplyCode();
        if (!FTPReply.isPositiveCompletion(reply)) {
            ftp.disconnect();
            throw new Exception(Constant.FTP_SERVER_EXCEPTION);
        }
        ftp.login(CommonConstant.FTP_USERNAME, Constant.FTP_PASSWORD);
        ftp.setFileType(FTP.TELNET_TEXT_FORMAT);
        ftp.enterLocalPassiveMode();
    }
    public boolean uploadFile(File localFileFullName, String fileName) throws Exception {
        InputStream input = new FileInputStream(localFileFullName);
        boolean reply = this.ftp.storeFile("'" + fileName +"'", input);
        disconnect();
        return reply;
    }
    public void disconnect() {
        if (this.ftp.isConnected()) {
            try {
                this.ftp.logout();
                this.ftp.disconnect();
            } catch (IOException e) {
                System.out.println(this.getClass()+ e);
            }
        }
    }
    public static void main(String[] args) throws Exception {
        System.out.println("Start");
        FTPUploader ftpUploader = new FTPUploader();
        System.out.println(ftpUploader.uploadFile(new File("C:\\test.txt"), "Destinate_DIR"));
        System.out.println("Done");
    }
}

祝你一切顺利

您似乎没有正确创建连接实例。 请参考我的工作代码:

public class FTPUploader {
    FTPClient ftp = null;
    public FTPUploader() throws Exception {
        ftp = new FTPClient();
        ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(new FileOutputStream("c:\\ftp.log"))));
        int reply;
        ftp.connect(Constant.FTP_HOST);
        reply = ftp.getReplyCode();
        if (!FTPReply.isPositiveCompletion(reply)) {
            ftp.disconnect();
            throw new Exception(Constant.FTP_SERVER_EXCEPTION);
        }
        ftp.login(CommonConstant.FTP_USERNAME, Constant.FTP_PASSWORD);
        ftp.setFileType(FTP.TELNET_TEXT_FORMAT);
        ftp.enterLocalPassiveMode();
    }
    public boolean uploadFile(File localFileFullName, String fileName) throws Exception {
        InputStream input = new FileInputStream(localFileFullName);
        boolean reply = this.ftp.storeFile("'" + fileName +"'", input);
        disconnect();
        return reply;
    }
    public void disconnect() {
        if (this.ftp.isConnected()) {
            try {
                this.ftp.logout();
                this.ftp.disconnect();
            } catch (IOException e) {
                System.out.println(this.getClass()+ e);
            }
        }
    }
    public static void main(String[] args) throws Exception {
        System.out.println("Start");
        FTPUploader ftpUploader = new FTPUploader();
        System.out.println(ftpUploader.uploadFile(new File("C:\\test.txt"), "Destinate_DIR"));
        System.out.println("Done");
    }
}

祝你一切顺利

“它对数据工作正常”,这里您指的是什么类型的数据?您能告诉我您尝试了多少kb的数据吗..我问您尝试了什么类型的“数据”,请仔细阅读我的评论?我正在处理图像..您在问题中说“它对数据工作正常…”,所以问您,对于什么类型的数据,它在工作?“它对数据工作正常”,这里您指的是什么类型的数据?您能告诉我您尝试了多少kb的数据吗..我在问您尝试了什么类型的“数据”,请仔细阅读我的评论?我正在处理图像..您在问题中说“它对数据工作正常…”,所以问你,它在为什么样的数据工作?谢谢Bhoopen,我已经找到了解决问题的方法。但是你的代码看起来也很有趣。谢谢Bhoopen,我已经找到了解决问题的方法。但是你的代码看起来也很有趣。