ftp上传文件550异常

zhangfu44 2011-08-04 11:27:07
package kjb.project.test;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;


public class FtpBackUpDataBase
{

private FtpClient ftpClient;
public String startUpload(Properties property,String[]filenames)
{
String server=property.getProperty("ftpserverip");
String user=property.getProperty("ftpserveruser");
String password=property.getProperty("ftpserverpass");
String path = property.getProperty("ftpfilespath");
try
{
//连接ftp服务器
return connectServer(server, user, password, path,filenames);
//upload(filenames);
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if (ftpClient != null)
{
try
{
ftpClient.closeServer();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
return null;
}

// 连接ftp服务器
private String connectServer(String server, String user, String password,
String path,String[] filename) throws IOException
{
// server:FTP服务器的IP地址;user:登录FTP服务器的用户名
// password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径
ftpClient = new FtpClient();
ftpClient.openServer(server,21);
ftpClient.login(user, password);
// path是ftp服务下主目录的子目录
if (path.length() != 0)
ftpClient.cd(path);
// 用2进制上传
ftpClient.binary();
/*TelnetInputStream is=ftpClient.list();
int c;
while ((c=is.read())!=-1) {
System.out.print((char) c);}
is.close();*/
try
{
// "upftpfile"用ftp上传后的新文件名
// os = ftpClient.put("upftpfile");
for(int i=0;i<filename.length;i++)
{
int index = filename[i].lastIndexOf("\\");
String filenames=filename[i].substring(index+1);
//System.out.println(filename[i]);
TelnetOutputStream os = ftpClient.put(filenames);
java.io.File file_in = new java.io.File(filename[i]);
//System.out.println(file_in.getAbsolutePath());
if (file_in.length() == 0)
{
return "上传文件失败";
}
FileInputStream is = new FileInputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1)
{
os.write(bytes, 0, c);
}
is.close();
os.close();
ftpClient.closeServer();
}
}
catch(Exception e)
{
e.printStackTrace();
}
return "上传文件成功!";

}
}


运行以上程序时总是报:
java.io.FileNotFoundException: STOR test20110804105054.bak: 550 /test20110804105054.bak: Permission denied.

at sun.net.ftp.FtpClient.readReply(FtpClient.java:236)
at sun.net.ftp.FtpClient.issueCommand(FtpClient.java:193)
at sun.net.ftp.FtpClient.openDataConnection(FtpClient.java:383)
at sun.net.ftp.FtpClient.put(FtpClient.java:594)
at kjb.project.test.FtpBackUpDataBase.connectServer(FtpBackUpDataBase.java:76)
那位高手能帮忙解决啊!
...全文
987 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChDw 2011-08-04
  • 打赏
  • 举报
回复
异常说明已经非常清楚了吧,你会英文总会找个翻译软件吧!


/test20110804105054.bak: Permission denied.

你的用户无法将文件写入根目录啊!!你看看是否你传入的path不正确啊,或者在store之前打印一下pwd看看当前目录
wula0010 2011-08-04
  • 打赏
  • 举报
回复
没有权限,看看服务器的权限设置。

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧