首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件不是在java的Ftp服务器上上传吗?

文件不是在java的Ftp服务器上上传吗?
EN

Stack Overflow用户
提问于 2014-03-05 11:57:34
回答 3查看 2.1K关注 0票数 2

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

代码语言:javascript
复制
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或2kb,但当我试图上传的文件,是50 kb和100 kb,那么它不工作良好。上传到服务器上的图像为空白。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-25 06:47:46

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

票数 2
EN

Stack Overflow用户

发布于 2014-09-29 12:32:57

注意到您的代码有问题,只在文件或internet上发布,speed.Code在这里工作正常,并且建议不要直接使用详细信息,请避免将这些内容从应用程序中删除,您可以更好地选择使用web服务来处理与服务器相关的内容。祝好运

票数 1
EN

Stack Overflow用户

发布于 2016-09-16 11:28:00

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

代码语言:javascript
复制
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");
    }
}

万事如意.!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22197069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档