分享
 
 
 

RobFtp上传注册部分

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

u 上传注册部分:改为RobFtp上传程序。

1.原有的upload包中含有3个类,分别是knowledgeRegister,splitInfo,upload,。

其中knowledgeRegister类是主程序,负责启动upload类,并且做一些初始化工作。

splitInfo类是程序的核心,负责分片传输的功能。

upload类进行FTP连接和登录,也完成上传分片后的重新组合功能。

程序流程为:

2.吸取原有程序的思想:

从aes.ini文件中读取zip文件名esName和文件路径esPath,

写入哈希表中:

HashMap map;

map.put(esName,esPath);

用户注册上传时从下拉列表jComboBox中读取esName变量,

esName=(String)jComboBox.getSelectedItem();

esPath=(String)map.get(esName);

3. 将原有程序全部重写后的upload包中含有3个类,分别是RobFtp,RobFrame,RobHelp。

1.RobFtp:程序入口类,进行容器的布局,并且引出主程序 new RobFrame()

类图描述为:

2.RobFrame:类图为:主程序,

Ø Swing设计:菜单分为3部分:分别为“文件”,“风格”,“帮助”。

面板布局分为3部分:FTP设置,选择欲注册知识库,进行上传。

Ø 上传部分:采用两种方式,用户选择其一。

直接传输方式:传输速度快,但是如果网络不稳定,或是发生其他意外情况,传输将被中断,必须从头开始再传输。

断点续传方式:如果网络中断,或是用户自己进行中断,点击“注册”按钮后可以从中断处继续,适合于网络不稳定的地区。传输速度较慢。

Ø 用户使用方法:

进行FTP设置:填写IP地址,端口,用户名,密码,如果没有用户名和密码,请选择匿名方式。然后点击“连接”按钮,连接至服务器。

选择欲注册知识库:在下拉列表中选择想要注册的知识库。

传输方式选择:用户可以根据情况任选一种方式:直接传输方式或断点续传方式。

类图描述为:

3.RobHelp:程序帮助文档,网页形式,目前框架已经搭好,主页面可以显示,但其中文字部分显示不出,不知为何?下面将要解决

类图描述为:

4. 程序主要实现:

这里只简要说明断点续传部分:

将upload定义为一个线程,这样可以使得多个用户同时向服务器发出请求,并行处理。

Thread thread=new Thread(){

public void run(){

upload();}

};

thread.start();

连接至服务器之后,登录,然后在服务器的虚拟目录上建立目录:一级目录为用户名,二级目录为欲注册知识库名。

try{

String a=ftpClient.pwd();

System.out.println(a);

if(a.compareTo("/"+user+"/"+fileTitle)!=0&&a.compareTo("/"+user)!=0&&a.compareTo("//"+user+"/"+fileTitle)!=0)

{

try{ftpClient.chdir(user);}

catch(Exception e){

try{

ftpClient.mkdir(user);

ftpClient.chdir(user);

}catch(Exception e1){

uploadLabel.setText("创建目录失败!");

JOptionPane.showMessageDialog(this,"无法创建目录,请稍后再注册。");

return;

}

}

try{

ftpClient.chdir(fileTitle);

}catch(Exception e){

try{

ftpClient.mkdir(fileTitle) ;

ftpClient.chdir(fileTitle);

ftpClient.setType(FTPTransferType.BINARY);

}catch(Exception e1){

uploadLabel.setText("创建目录失败!");

JOptionPane.showMessageDialog(this,"无法创建目录,请稍后再注册。");

return;

}

}

}}catch(Exception e1){

uploadLabel.setText("无法创建目录,出错!");}

进行断点续传:分片大小为static final int rob=512;用变量start记录断点位置信息,可以进行用户中断和网络异常中断。点击“注册”按钮后,程序会自动读取断点信息,从上传断点处恢复,继续上传过程。

try{

f1=new RandomAccessFile(esPathFile,"r");

if(start==0)

{f1.seek(start*rob);System.out.println(start+"开始点1");}

else{f1.seek(start*rob);

System.out.println(start+"开始点2");}

byte[] buffer=new byte[rob];

bUpload=true;

int esPathFileSize=(int)esPathFile.length();

jProgressBar.setMaximum(esPathFileSize);

jProgressBar.setValue(0);

while(true) {

if(bUpload){

int bytes=f1.read(buffer);

if(bytes<0)

break;

ftpClient.put(buffer,remoteFile,true);//需要处理?等等

start++;

iStep+=bytes;

jProgressBar.setValue(iStep);

}else{

uploadLabel.setText("注册已被你中断!");

JOptionPane.showMessageDialog(this,"注册已被你中断,请继续完成注册!");

break;

}

}

f1.close();

}

catch(Exception el){

el.printStackTrace();

uploadLabel.setText("网络中断!");

JOptionPane.showMessageDialog(this,"网络中断,请稍后继续完成注册!");

try{

// f=new RandomAccessFile(esPathInfoFile,"rw");

// f.writeInt(start);

System.out.println(start+"网络中断!");

// f.close();

f1.close();

jButton3.setEnabled(true);

jButton4.setEnabled(false);

}

catch(Exception ew){ew.printStackTrace();}

}

其中进度条jProgressBar可以显示上传进度,中断亦可。

4. 软件screenshot:

5. 小结:

上传注册部分已基本完成。现在对java也只是刚刚入门,初步感觉内容太多,难点也太多,遇到问题自己很难解决或者要花很长时间摸索,要编出像样的程序还是困难。下面的计划是修改监控部分monitor,这部分因为不仅牵扯到网络,而且有数据库接口部分,难度可能较大。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有