文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程JSP关于JSP Commons FileUpload 组件上传文件的一些总结
精品推荐
特别推荐
·什么是 JSP 技术?
·JSP简介
·JSP数据库操作例程
·新手入门:学习JSP的经典的入门学习资料
·由浅入深学习动态网页制作PHP的编程与应用
·输入汉字自动转为拼音(jsp实现方式)
·经验分享 JSP程序员完全蜕变手册
·JSP实战:JBuilder2005中创建数据库表
·新手入门:JSP基本语法与简单表单处理
·使用技巧:在JSP页面中的应用JavaBean
热点TOP10
·水晶报表的jsp实现
·对于JSP中表单数据存储的一种通用方法
·用JSP+JavaScript打造二级级联下拉菜单
·用JSP实现数据库图片的存储与显示实例
·struts基本知识:谈JSP与XML的交互
·对JSP数据库连接类使用方法的详细讲解
·输入汉字自动转为拼音(jsp实现方式)
·实例解析 在Eclipse3.2上部署JSP全过程
·实例讲解在JSP开发中的对象和范围属性
·配置Eclpise+Tomcat实现JSP编写与部署

关于JSP Commons FileUpload 组件上传文件的一些总结

日期:2008年5月18日 作者: 查看:[大字体 中字体 小字体]


 

也许好东西就是需要慢慢地去发现和总结的.

以前我写的JSP系统都是采用Jsp SmartUpload 组件来解决的.

前几天客户投诉说,上传大文件的时候,浏览器无反应,甚至会崩溃.叫我帮忙解决一下并加上上传进度表示(这个暂且不表,有需要的可加我MSN:info@hkeb.com).

立即google ,baidu 一下,才知JSp SmartUpload 适用于比较小文件的时候,而如果上传大文件的时候还得数commons FileUpload 组件.

在网上翻阅了无数篇关于这个东东的资讯. 基本上每一篇资讯都大同小异.这也难怪,网上的东西都是转来转去的.

上传文件是解决了,但是表单上的其他文本域参数却不知道如何接收.直查得我头破血流,费了一二周都没解决.

因为全部的文章都没有提到如何解决表单的其他文本数据.

直到今天才查得一个比较可行的办法.

1:如果要传参,数据量不是太大的话,可以用get 的带参方法.即 form action 里的upload.jsp后面跟上参数.

例如:upload.jsp?id=1&bid=2&uid=somebody

表单的类型不变.这样在upload.jsp 处理上传文件数据之前可以用request.getParameter("id")来获取参数.

这是一种在传参的数据量不大的情况之下比较可行的方法.

2:如果确实没有办法,必须跟文件域一起提交到上传组件里处理.据网友所说.可以采用如下代码处理.

public MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException {
DiskFileUpload fileUpload = this.fileUpload;
String enc = determineEncoding(request);

// use prototype FileUpload instance if the request specifies
// its own encoding that does not match the default encoding
if (!enc.equals(this.defaultEncoding)) {
fileUpload = new DiskFileUpload();
fileUpload.setSizeMax(this.fileUpload.getSizeMax());
fileUpload.setSizeThreshold(this.fileUpload.getSizeThreshold());
fileUpload.setRepositoryPath(this.fileUpload.getRepositoryPath());
fileUpload.setHeaderEncoding(enc);
}

try {
List fileItems = fileUpload.parseRequest(request);
Map parameters = new HashMap();
Map multipartFiles = new HashMap();
for (Iterator it = fileItems.iterator(); it.hasNext();) {
FileItem fileItem = (FileItem) it.next();
if (fileItem.isFormField()) {
String value = null;
try {
value = fileItem.getString(enc);
}
catch (UnsupportedEncodingException ex) {
logger.warn("Could not decode multipart item '" + fileItem.getFieldName() +
    "' with encoding '" + enc + "': using platform default");
value = fileItem.getString();
}
String[] curParam = (String[]) parameters.get(fileItem.getFieldName());
if (curParam == null) {
// simple form field
parameters.put(fileItem.getFieldName(), new String[] { value });
}
else {
// array of simple form fields
String[] newParam = StringUtils.addStringToArray(curParam, value);
parameters.put(fileItem.getFieldName(), newParam);
}
}
else {
// multipart file field
CommonsMultipartFile file = new CommonsMultipartFile(fileItem);

[1] [2] 下一页 




上一篇:EasyJWeb Tools业务引擎中分页的设计及实现

下一篇:编程心得:提升JSP应用程序的7大绝招

相关文章:
·dll文件下载
·Vista系统使用技巧总结
·CPU型号大全总结
·局域网文件共享详解
·关于提高操作系统重装
·WindowsXP应用技巧的具体总结
·关于SEX的9个关键问题
·利用word将PDF转换DOC文件的方法
·java做的比较完善的FTP连接上传下载文件
·Google adsense 2007巡讲大会郑州站总结
相关软件:
·有关毛泽东的一些问题解答(不完整版)
·最强文件加密锁2007
·Ultra RM Converter(Real文件转换分割,合并)V3.3.0916 汉化版
·西门子plc软件及教程 文件类型 其它介绍
·文件夹加密器V9.6
·国外一些死亡金属音乐(很狂躁哟)
·PSGRID表格表单组件V2.8
·文件夹隐藏大师V3.2
·csf文件播放器 V5.0.0 1118
·2005监理执业考试文件汇编

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot