qq_17039229 2015-11-04 03:21 采纳率: 0%
浏览 11662

FTPClient上传storeFile报错,求救

今天要写一个很简单的ftp上传的代码,结果总是报错,请教各位大神来帮忙解决

这是我的代码

 public class UpLoadJSToFtp {

    /**
     * 
     * @param url ftp服务器地址
     * @param port ftp服务器端口号    
     * @param userName 登录账号
     * @param password 登录密码
     * @param path 服务器保存路径
     * @param fileName 文件名
     * @param input 输入流
     * @return 上传成功返回true ,失败返回false
     */
    public static boolean uploadFile(String url,
            int port,
            String userName,
            String password,
            String path,
            String fileName,
            InputStream input){
        boolean isSuccess = false;
        FTPClient ftp = new FTPClient();
        ftp.setControlEncoding("UTF-8");
        try {
            int reply;
            ftp.connect(url);// 连接FTP服务器
            // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
            boolean loginResualt = ftp.login(userName, password);
            reply = ftp.getReplyCode();
            if(!loginResualt && !FTPReply.isPositiveCompletion(reply)){
                ftp.disconnect();
                return isSuccess;
            }
            ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
            ftp.makeDirectory(path);
            ftp.changeWorkingDirectory(path);
            ftp.enterLocalPassiveMode();
            ftp.storeFile(fileName, input);
            input.close();
            ftp.logout();
            isSuccess = true;
        } catch (SocketException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {  
              if(ftp.isConnected()) {  
                    try {  
                      ftp.disconnect();  
                    } catch(IOException ioe) {  
                    }  
                  }
        }
        return isSuccess;
    }

    /**
     * 将本地文件上传到FTP服务器上 *
     */
    public static void upLoadFromProduction(String url,// FTP服务器hostname
            int port,// FTP服务器端口
            String username, // FTP登录账号
            String password, // FTP登录密码
            String path, // FTP服务器保存目录
            String filename, // 上传到FTP服务器上的文件名
            String pathName // 输入流文件路径
       ) {
        try {
            FileInputStream in = new FileInputStream(new File(pathName));
            boolean flag = uploadFile(url, port, username, password, path,filename, in);
            System.out.println(flag);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        String url = "172.25.5.229";
        int port = 22;
        String username = "etdftp";
        String password = "123";
        String path = "/caoyang";
        String filename = "caoyangFTPTEST.js";
        String pathName = "D:/FndData_1021.js";
        upLoadFromProduction(url, port, username, password, path, filename, pathName);
    }
}

这是报的错误,求解

 java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:189)
    at java.net.SocketInputStream.read(SocketInputStream.java:121)
    at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at java.io.BufferedReader.fill(BufferedReader.java:154)
    at java.io.BufferedReader.read(BufferedReader.java:175)
    at org.apache.commons.net.io.CRLFLineReader.readLine(CRLFLineReader.java:58)
    at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:310)
    at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:290)
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:479)
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:552)
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:601)
    at org.apache.commons.net.ftp.FTP.pasv(FTP.java:952)
    at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:755)
    at org.apache.commons.net.ftp.FTPClient._storeFile(FTPClient.java:565)
    at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:557)
    at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1795)
    at stag.utils.UpLoadJSToFtp.uploadFile(UpLoadJSToFtp.java:54)
    at stag.utils.UpLoadJSToFtp.upLoadFromProduction(UpLoadJSToFtp.java:89)
    at stag.utils.UpLoadJSToFtp.main(UpLoadJSToFtp.java:104)
false
  • 写回答

2条回答 默认 最新

  • qq_17039229 2015-11-04 06:07
    关注

    没人帮忙吗!求助啊!为什么FTPClient在jdk1.6以上就不能正常运行了。求解

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗