今天要写一个很简单的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