标题: java 实现FTP 上传功能的api
gulu
LU幼天使
Rank: 2
猫族精灵使



UID 16
精华 6
积分 78
帖子 132
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-9-17
 
发表于 2003-10-9 08:57  资料  个人空间  短消息  加为好友 
最简单的应用就是连接与上传/
public boolean connect(String hostname, String uid,String pwd)
{
this.hostname = hostname;
LblPrompt.setText("ÕýÔÚÁ¬½Ó£¬ÇëµÈ´ý.....");
try{
aftp =new FtpClient(hostname);
aftp.login(uid,pwd);
aftp.binary();
//aftp.cd("hompage");
showFileContents();
}
catch(FtpLoginException e){
a="ÎÞȨÏÞÓëÖ÷»ú:"+hostname+"Á¬½Ó!";
LblPrompt.setText(a);
return false;
}
catch (IOException e){
a="Á¬½ÓÖ÷»ú:"+hostname+"ʧ°Ü!";
LblPrompt.setText(a);
return false;
}
catch(SecurityException e)
{
a="ÎÞȨÏÞÓëÖ÷»ú:"+hostname+"Á¬½Ó!";
LblPrompt.setText(a);
return false;
}
LblPrompt.setText("Á¬½ÓÖ÷»ú:"+hostname+"³É¹¦!");
return true;
}

public boolean sendFile(String filepathname){
boolean result=true;
if (aftp != null)
{
LblPrompt.setText("ÕýÔÚÕ³ÌùÎļþ,ÇëÄÍÐĵȴý....");

String contentperline;
try{
a="Õ³Ìù³É¹¦!";
String fg =new String("\\");
int index = filepathname.lastIndexOf(fg);
String filename = filepathname.substring(index+1);
File localFile ;
localFile = new File(filepathname) ;
RandomAccessFile sendFile = new RandomAccessFile(filepathname,"r");
//
sendFile.seek(0);
outs = aftp.put(filename);
outputs = new DataOutputStream(outs);
while (sendFile.getFilePointer() < sendFile.length() )
{
ch = sendFile.read();
outputs.write(ch);
}
outs.close();
sendFile.close();
}
catch(IOException e){
a = "&Otilde;&sup3;&Igrave;ù&Ecirc;§°&Uuml;!";
result = false ;

}
LblPrompt.setText(a);
showFileContents();
}
else{
result = false;
}
return result;
}

功能强大的Java FTP Client Library com.sun.net.ftp.*





--------------臭小猪拱来拱去在说--------------
告诉我,
有谁见到我心爱的臭小猪了。
我的身边,
只剩下一些他爱吃的东西。
他不会在我来的时候睡着了?!
顶部
无双
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14
天才猪



UID 4
精华 84
积分 5863
帖子 11390
活跃指数 0
LU金币 4248 个
LU金条 0 个
阅读权限 200
注册 2003-9-16
来自 杭州
 
发表于 2003-10-9 12:45  资料  个人空间  主页 短消息  加为好友 
看到

看来JAVA还真比C方便

很多东西都有JAR文件了





不要问我结果 我只研究过程与思路
无双客栈
顶部
freestream
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14



UID 86
精华 2
积分 89
帖子 165
活跃指数 11
LU金币 6129 个
LU金条 0 个
阅读权限 200
注册 2003-9-22
 
发表于 2003-10-9 22:51  资料  个人空间  短消息  加为好友 
com.sun.net.ftp.* ?
好像不是jdk里的标准类库。
还有,怎么代码这么乱?断点续传怎么解决?怎么选择passive/port 模式?





班门弄斧之作《征服C/C++企业软件开发核心技术》已经发行,敬请斧正,各大书店有售(http://www.china-pub.com/209150)
顶部
无双
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14
天才猪



UID 4
精华 84
积分 5863
帖子 11390
活跃指数 0
LU金币 4248 个
LU金条 0 个
阅读权限 200
注册 2003-9-16
来自 杭州
 
发表于 2003-10-9 23:06  资料  个人空间  主页 短消息  加为好友 
断点继传我想这些普通的JAVA类库中都没有实现的
需要自己根据FTP协议来进行计算和扩展
而且这个类也只是一个扩充

断点续传的原理就是使用另一个文件来保存已下的长度

对一个JAR来说
让它负责这方面的工作不鉴妨合理
JAR应该是限制在一个类内 越简单越好
不应该使用文件系统的东西去保存更多内容





不要问我结果 我只研究过程与思路
无双客栈
顶部
freestream
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14



UID 86
精华 2
积分 89
帖子 165
活跃指数 11
LU金币 6129 个
LU金条 0 个
阅读权限 200
注册 2003-9-22
 
发表于 2003-10-10 09:59  资料  个人空间  短消息  加为好友 
断点续传要求支持 rest及appe命令。

telnet youhost 21
help

你可以看到ftp server 支持的命令,一般含*的,表示不能完全支持。





班门弄斧之作《征服C/C++企业软件开发核心技术》已经发行,敬请斧正,各大书店有售(http://www.china-pub.com/209150)
顶部
无双
荣誉斑竹
Rank: 14Rank: 14Rank: 14Rank: 14
天才猪



UID 4
精华 84
积分 5863
帖子 11390
活跃指数 0
LU金币 4248 个
LU金条 0 个
阅读权限 200
注册 2003-9-16
来自 杭州
 
发表于 2003-10-10 10:06  资料  个人空间  主页 短消息  加为好友 
我试试看





不要问我结果 我只研究过程与思路
无双客栈
顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
 



当前时区 GMT+8, 现在时间是 2008-12-6 01:48
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.052768 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver