分享
 
 
 

ahxu-commons-upload-beta2显进度上传组件beta2发布

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

ahxu-commons-fileuploadex-beta1及相关内容先参见http://blog.csdn.net/ahxu/archive/2004/08/17/76997.aspx

ahxu-commons-fileuploadex-beta2的改动:

1.重写了内部实现结构,使运行更省资源,更稳定。

2.修正一些bug,接口做了一些调整,使之应用更简单!

说明:

ahxu-commons-fileuploadex-beta1中的接口依然保留,但有些不建议再使用,将在正式版中取消,现在依然保留是为了与前一版本兼容,现在用户依然可以使用,建议新用户不要使用!

一、ahxu-commons-fileuploadex-beta2的安装:

1.下载apache的commons-fileupload-1.0组件

下载地址:http://apache.linuxforum.net/dist/jakarta/commons/fileupload/binaries/commons-fileupload-1.0.zip

2. 下载ahxu的ahxu-commons-fileuploadex-1.0组件

下载地址:http://www.lizonghan.com/ahxu/ahxu-commons-fileuploadex-beta2.jar

3. 将此二个.jar文件放入一个已配置好的web应用的WEB-INF\lib目录下,例如:test\WEB-INF\lib

二、ahxu-commons-fileuploadex-beta2的测试:

1.下载应用测试代码upload-jsp.rar,下载地址http://www.lizonghan.com/ahxu/upload2-jsp.rar ,解压放在此web应用的根目录,例如:test2.运行测试upload.jsp,要求IE5.0以上,例如:http://127.0.0.1/test/upload.jsp

3.选择一个或二个大点儿的文件,最好几百M,然后上传,上传过程中会弹出一个进度对话框,如图

4.文件上传完毕后将显示上传结果,进度对话框自动关闭。

三、有用的upload-jsp.rar:

upload-jsp.rar中包含的4个文件:upload.jsp、receive.jsp、progressbar.jsp、progressdetail.jsp

1.upload.jsp——文件上传表单页面;

此页面包含了文件上传的form表单,当然也可以是你的应用中任何你喜欢的有文件上传form表单的页面。此页面在submit时调用javascript函数uploadBegin()弹出进度显示对话框(显示progressbar.jsp);你也可以根据需要自己定制,例如不用对话框,用iframe等。但form的onSubmit时要调用uploadBegin(),如:

<script language="javascript">

function uploadBegin(){

theFeats = "height=200,width=320,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no";

strAppVersion = navigator.appVersion;

if (document.uploadForm.file1.value != "")

{

if (strAppVersion.indexOf('MSIE') != -1 && strAppVersion.substr(strAppVersion.indexOf('MSIE')+5,1) > 4)

{

winstyle = "dialogWidth=320px; dialogHeight:200px; center:yes";

window.showModelessDialog(<%="\""+response.encodeURL("progressbar.jsp")+"\""%>,window,winstyle);

}

}

}

</script>

<form action=<%="\""+response.encodeURL("receive.jsp")+"\""%> enctype="multipart/form-data" method="post" name="uploadForm" id="uploadForm" onsubmit="uploadBegin();">

2.receive.jsp——文件上传接收页,即服务器端接收上传数据并处理上传数据的页面,可以用servlet来代替;

<%

List fileItemList=null;

/*创建组件*/

DiskFileUploadEx fu = new DiskFileUploadEx();

/*设置允许上传的最大值,超过此值将不进行上传*/

fu.setSizeMax(1024*1000*1000);

/*设置设允许上传的文件类型*/

fu.setAllowFiles(".txt;.jpg;.rm;.rmvb;.htm");

try{

/*执行上传过程,并得到上传后文件列表*/

fileItemList=fu.parseRequestEx(request);

Iterator fileItemListIte=fileItemList.iterator();

while(fileItemListIte.hasNext())

{

FileItem file=(FileItem)fileItemListIte.next();

out.println(file.getName()+"<br>");

}

out.println("上传成功");

}catch (Exception e){

out.println("上传失败<br>");

out.println(e.getMessage());

/*显示不被允许上传的文件列表 begin*/

if(e instanceof DiskFileUploadEx.InvalidFileUploadException){

out.println("<p>以下文件不被允许:</p>");

Iterator unAllowFileS=((DiskFileUploadEx.InvalidFileUploadException)e).getInvalidFileList().iterator();

while(unAllowFileS.hasNext()){

out.println((String)unAllowFileS.next()+"<br>");

}

/*显示不被允许上传的文件列表 end */

}

}

finally{

/*上传完成后的清理工作*/

fu.dispose();

}

%>

3.progressbar.jsp——文件上传进度显示页,如图1;

你也可以根据自己的需要定制自己样式的进度显示页面。

4.progressdetail.jsp——文件上传进度数据读取页,用来构造上传进度信息,供progressbar.jsp读取显示,无需修改

四、简单应用部署的总结:

1.下载安装apache的commons-fileupload-1.0组件及ahxu-commons-fileuploadex-beta2组件;

2.编辑上传表单文件,注意要复制upload.jsp的uploadBegin(),以及form表单的onsubmit="uploadBegin();"

3.复制progressbar.jsp、progressdetail.jsp无需修改;

4.根据需要编辑receive.jsp页的内容。

五、ahxu.commons.upload.DiskFileUploadEx 的扩展应用接口

ahxu.commons.upload

Class DiskFileUploadExjava.lang.Object

|-org.apache.commons.fileupload.FileUploadBase

|-org.apache.commons.fileupload.DiskFileUpload

|-ahxu.commons.upload.DiskFileUploadEx

public class DiskFileUploadEx

extends org.apache.commons.fileupload.DiskFileUpload

DiskFileUploadEx类继承自org.apache.commons.fileupload.DiskFileUpload,以下所列应用接口均为原org.apache.commons.fileupload.DiskFileUpload没有的接口,而有原相关内容请参见org.apache.commons.fileupload文档,

Method Summary

void

clear(javax.servlet.http.HttpServletRequest req)

Deprecated. 同dispose,原beta1中使用,建议不要使用

void

dispose()

上传后清理工作

java.lang.String

getAllowFiles()

得到允许上传的文件类型

int

getReportLimitSize()

boolean

isAllowField()

得到是否允许上载除file以外的field的设置开关值

java.util.List

parseRequestEx(javax.servlet.http.HttpServletRequest req)

parseRequest的扩展,完成上传操作 根据allowField值决定是否接收除file以外的其它field,并检查上传的文件是否为允许的文件

java.util.List

parseRequestExSessionReport(javax.servlet.http.HttpServletRequest req)

Deprecated. 同parseRequestEx,原beta1中使用,建议不要使用

void

setAllowField(boolean allow)

设置开关值,是否允许上载除file以外的field的内容

void

setAllowFiles(java.lang.String allowFiles)

设置允许上传的文件类型,默认是null,可以上传任何类型

void

setReportLimitSize(int reportLimitSize)

设置最小报告长度,这个参数影响报告频度,默认是10K

FAQ:

1.如何从beta1升级beta2?

答:

1).下载beta2并安装。

2).下载upload2-jsp.rar 用其中的 progressdetail.jsp覆盖原beta1的同名文件。

3).其它可不变,也可将原接收代码内的parseRequestExSessionReport替换成parseRequestEx,将clear(javax.servlet.http.HttpServletRequest req) 替换成dispose() 。

2.示例代码并没有保存文件到硬盘或数据库,我该怎么保存?

答:这方面的内容为org.apache.commons.fileupload组件的应用内容,网上相关的内容有很多,这里就不在累述了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有