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)
那位高手能帮忙解决啊!