**在正式环境上能够登陆成功,可以切换到根目录,
但是无法切换到根目录已存在的目录,
也无法在根目录下上传文件这是怎么回事???**这是最近在正式环境调试的代码
```
int reply;
ftp.connect(host, port);// 连接FTP服务器
// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器
ftp.login(username, password);// 登录
reply = ftp.getReplyCode();
System.out.println("ftp地址:"+host+",登录名:"+username+",密码:"+password+",reply:"+reply);
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.out.println("登陆失败!");
return result;
}else{
System.out.println("登陆成功!");
}
ftp.setRemoteVerificationEnabled(false);
ftp.enterLocalPassiveMode();
//切换到上传目录
boolean aaa=ftp.changeWorkingDirectory("/");
System.out.println("切换到根路径,状态:"+aaa);
boolean ccc=ftp.changeWorkingDirectory("ZSK");
System.out.println("切换路径到ZSK,状态:"+ccc);
if(ccc){
ftp.setControlEncoding("ISO-8859-1");//设置编码集为GBK支持中文
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
conf.setServerLanguageCode("zh");
ftp.configure(conf);
//设置上传文件的类型为二进制类型
ftp.setFileType(FTP.BINARY_FILE_TYPE);
System.out.println("设置上传文件的类型为二进制类型!"+FTP.BINARY_FILE_TYPE);
// ftp.enterLocalPassiveMode();// 设为被动模式
System.out.println("设为被动模式!");
filename= new String(filename.getBytes("GBK"),"ISO-8859-1");
System.out.println("上传文件名:"+filename);
String [] strs = ftp.listNames();
boolean b = true;
for (String str : strs){
if(str != null && str.equals(filename)){
b = false;
break;
}
}
if(b){
//上传文件
if (!ftp.storeFile(filename, input)) {
System.out.println("上传失败");
return result;
}
}
input.close();
return result;
}else{
boolean ddd=ftp.changeWorkingDirectory("/");
System.out.println("切换到根路径,状态:"+ddd);
ftp.setControlEncoding("ISO-8859-1");//设置编码集为GBK支持中文
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
conf.setServerLanguageCode("zh");
ftp.configure(conf);
//设置上传文件的类型为二进制类型
ftp.setFileType(FTP.BINARY_FILE_TYPE);
System.out.println("设置上传文件的类型为二进制类型!"+FTP.BINARY_FILE_TYPE);
// ftp.enterLocalPassiveMode();// 设为被动模式
System.out.println("设为被动模式!");
filename= new String(filename.getBytes("GBK"),"ISO-8859-1");
System.out.println("上传文件名:"+filename);
String [] strs = ftp.listNames();
boolean b = true;
for (String str : strs){
if(str != null && str.equals(filename)){
b = false;
break;
}
}
if(b){
//上传文件
if (!ftp.storeFile(filename, input)) {
System.out.println("上传失败");
return result;
}
}
input.close();
if(ddd){
return result;
}
}
```
日志、
```
ftp地址:10.172.20.41,登录名:ftp1,密码:ftp1,reply:230
登陆成功!
切换到根路径,状态:true
切换路径到ZSK,状态:false
切换到根路径,状态:true
设置上传文件的类型为二进制类型!2
设为被动模式!
上传文件名:1513245492915022890.png
上传失败
```
但是无法切换到根目录已存在的目录,
也无法在根目录下上传文件这是怎么回事???**这是最近在正式环境调试的代码
```
int reply;
ftp.connect(host, port);// 连接FTP服务器
// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器
ftp.login(username, password);// 登录
reply = ftp.getReplyCode();
System.out.println("ftp地址:"+host+",登录名:"+username+",密码:"+password+",reply:"+reply);
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
System.out.println("登陆失败!");
return result;
}else{
System.out.println("登陆成功!");
}
ftp.setRemoteVerificationEnabled(false);
ftp.enterLocalPassiveMode();
//切换到上传目录
boolean aaa=ftp.changeWorkingDirectory("/");
System.out.println("切换到根路径,状态:"+aaa);
boolean ccc=ftp.changeWorkingDirectory("ZSK");
System.out.println("切换路径到ZSK,状态:"+ccc);
if(ccc){
ftp.setControlEncoding("ISO-8859-1");//设置编码集为GBK支持中文
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
conf.setServerLanguageCode("zh");
ftp.configure(conf);
//设置上传文件的类型为二进制类型
ftp.setFileType(FTP.BINARY_FILE_TYPE);
System.out.println("设置上传文件的类型为二进制类型!"+FTP.BINARY_FILE_TYPE);
// ftp.enterLocalPassiveMode();// 设为被动模式
System.out.println("设为被动模式!");
filename= new String(filename.getBytes("GBK"),"ISO-8859-1");
System.out.println("上传文件名:"+filename);
String [] strs = ftp.listNames();
boolean b = true;
for (String str : strs){
if(str != null && str.equals(filename)){
b = false;
break;
}
}
if(b){
//上传文件
if (!ftp.storeFile(filename, input)) {
System.out.println("上传失败");
return result;
}
}
input.close();
return result;
}else{
boolean ddd=ftp.changeWorkingDirectory("/");
System.out.println("切换到根路径,状态:"+ddd);
ftp.setControlEncoding("ISO-8859-1");//设置编码集为GBK支持中文
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
conf.setServerLanguageCode("zh");
ftp.configure(conf);
//设置上传文件的类型为二进制类型
ftp.setFileType(FTP.BINARY_FILE_TYPE);
System.out.println("设置上传文件的类型为二进制类型!"+FTP.BINARY_FILE_TYPE);
// ftp.enterLocalPassiveMode();// 设为被动模式
System.out.println("设为被动模式!");
filename= new String(filename.getBytes("GBK"),"ISO-8859-1");
System.out.println("上传文件名:"+filename);
String [] strs = ftp.listNames();
boolean b = true;
for (String str : strs){
if(str != null && str.equals(filename)){
b = false;
break;
}
}
if(b){
//上传文件
if (!ftp.storeFile(filename, input)) {
System.out.println("上传失败");
return result;
}
}
input.close();
if(ddd){
return result;
}
}
```
日志、
```
ftp地址:10.172.20.41,登录名:ftp1,密码:ftp1,reply:230
登陆成功!
切换到根路径,状态:true
切换路径到ZSK,状态:false
切换到根路径,状态:true
设置上传文件的类型为二进制类型!2
设为被动模式!
上传文件名:1513245492915022890.png
上传失败
```
解决方案 »
- mysql驱动已导入,但是还是报错:JDBC Driver class not found: com.mysql.jdbc.Driver
- JDK有免安装?
- php mysql 模糊查询的问题
- JSP中数据连接池问题,db.properties如何在CLASSPATH中设置
- Java 连接SQL Server问题
- tomcat 受到攻击---急
- JSP+Dreamweaver怎么样?
- 一个难找的错误,不知道是为什么?请高手指教!大大分
- 初学者,请教JavaBean的问题!!!
- 为什么会连接数据库时出现下面的信息?
- javaweb中的session问题
- 数据库保存的是emoji , java 后台取的是乱码 问号,啥原因
这样呢?