上传文件所使用的方法有很多种,比如:jspsmart公司的jspsmartupload组件,O`Rrilly公司的cos组件,Jakarta Apache公司的commonsFileUpload组件,JavaZoom的uploadbean组件,还有Struts组件中自带的org.apache.struts.upload类工具等等。。
这几种的方法测试的结果表明cos大胜,但很不是解为什么cos有如此功效。哪儿做了处理。
有待对源码的理解。
引用
FileUpload的上传机制作一些分析,基本上,上传一个文件的过程在FileUpload中可以分为三个部分:
1.由客户端把要上传的文件生成request数据流,与服务器端建立连接
2. 在服务器端接收request流,将流缓存到内存或磁盘中(具体缓存到什么地方,将由DiskFileUpload的 setSizeThreshold(int cacheMax)方法来决定,当文件大小<cacheMax时,文件将被缓存到内存,否则将被缓存到磁盘的临时文件)
3.由服务器端的内存或是临时文件中把文件输出到指定的目录(这个目录才是指定的文件上传目录).
上述的第一步由浏览器完成,不用过多理会,重点是第二和第三步。
第二步时,由DiskFileUpload的parseRequest(...)方法(其实这个方法是继承于FileUploadBase类,真正起解析 request流作用的类是FileUploadBase)解析request流。在parseRequest(...)方法中,新建了一个 MultipartStream实例,由此实例的readBodyData()方法将上传文件的流读到FileItem实例中,FileItem实例根据设置好的cacheMax大小,引用一个内存中的数据流或是一个磁盘上的数据流,注意此时文件已经上传到了服务器,但仍然没有传到设定的上传目录。
第三步时,调用FileItem实例的write(File file)方法,将已经存在于内存或是磁盘上的上传文件流拷贝到设定好的上传目录,至此上传仍未结束,因为磁盘中很可能保存了上传文件的临时文件(当设定的cacheMax<文件大小时),如何删除这些临时文件?有两种方法:1.显示调用FileItem实例的delete()方法。2.不调用任何方法,当FileItem被垃圾回收时,由finalize()方法删除临时文件。
引用
cos的优越性得意于他对IO流的重写。BufferedServletInputStream,LimitedServletInputStream,PartInputStream 经过几次对原始流的优化。详细信息请查看cos源码。
几者之间的比较
http://www.java1995.cn/article/735.html
分享到:
相关推荐
COS这个文件上传组件可以说在几个开源的上传文件组件中性能是非常优秀的,上传速度很快(相比fileUpload,smart等组件),但在使用Struts2结合COS文件上传时要注意Struts2实现了自己的MultiPartRequest,这个过滤后的...
这将Cosmos DB的优势带给了预算较低的项目,并简化了Cosmos DB服务的操作复杂性,而价格却不受其影响。 这个怎么运作 使用星云存储和检索的实体包含有用的元数据。 给定实体具有版本标识符,已删除标志,创建时间和...
在本实验中,您将专注于公司如何利用变更订阅源功能发挥其优势,并通过实时数据分析可视化了解用户模式。 您将从电子商务公司的角度处理变更提要,并处理一系列事件,即代表诸如用户查看项目,将项目添加到购物车中...
微信小程序的优势在于它方便快捷、轻量级、跨平台、丰富的推广方式、丰富的功能接口、数据分析与优化、结合微信支付、支持多场景应用、社交功能以及多端同步等。这些优点使得小程序能够满足用户的多种需求,提供更好...
低温甲醇清洗技术因其成本低、易于获取、洗气效果好、技术稳定性高等优势,在煤化工行业广泛应用。其主要目的是脱去CO、H2气体中的H2S、CO2与COS等酸性气体。介绍了低温甲醇清洗技术的特点与优势、洗气原理、关键操作...
我们从mℓℓ和cosθCS的大型强子对撞机测量中得出模型的约束,这与直接检测和jets + MET搜索具有竞争优势。 我们发现,在某些情况下,cosθCS谱图提供了最强的边界,突显了散射角测量对于非共振新物理的重要性。
财务账款,会员管理,消息管理,短信中心,决策分析,人事工资管理及决策分析等企业管理中的每一个重要环节,集物流,资金流,信息流为一体,着重门店经营管理的细节,相较于其它同类软件更专业,更具突出优势。...
3.网络训练了50个epochs,miou达到0.72左右,学习率采用cos衰减,训练集和测试集的损失和iou曲线可以在run_results文件内查看,图像由matplotlib库绘制。除此外,还保存了训练日志,最好权重等 4.预测脚本可以自动...
在软件工程中,模块化的设计相比于整体化的设计在代码复用、代码库的维护上有明显的优势。 自上而下:应用层(Cosmos-SDK),ABCI,Tendermint共识引擎(共识+p2p网络)Tendermint共识引擎也被称为Tende
本文研究的数字示波器较传统示波器在功能上、体积上、成本上有着很大的优势。通过YB1605多用信号发生器测试的结果表明,本方案具有性价比高,使用方便而且可以实现波形的存储,以及断电重启后的波形重现功能,具有...
新一代数据中心 解决方案 目 录 1.... QoS考虑 43 8.1 QoS概述 43 8.2 Juniper的CoS机制支持和优势 44 9. 经济性考虑 48 10. 降低管理维护成本 52 11. 数据中心业务调度自动化 55 概述 对于任何机构而言,
这个程序有两个伟大的优势。首先,它作为一个精细的科学计算器,但更重要的是,它显示的计算的中间步骤,你键入。它允许学生观察和学习如何进行计算以及如何找到最终答案。第二,绘图能力是绝对惊人的!计算器不仅...
CRMEB的优势:快速积累客户、会员数据分析、智能转化客户、有效提高销售、会员维护; 功能简介 商城功能 首页可视化编辑、主题风格切换、商品管理、商品评价、规格模板、运费模板、主图视频、虚拟商品、商品口令、扫...
智能IC卡本身含有自行研制的COS(Chip OS)和加密算法,并采用多密钥、多加密算法体系,对所有的敏感数据文件加密保护。如图1所示。 620)this.style.width=620;"border=0> IC卡子系统是整个网络计算机系统网络安全的...
根据过去人口的流动性,通过技术手段预测未来人口趋势,将为组织决策带来空前的优势。在A市的代表性社区、关键街道、核心路口部署传感器,统计每天人口流入的数据。因为隐私保护的原因,不能直接公布人口流动的真实...
勾月三相电机电流计算软件依据公式电机功率公式P=U×I×√3×cosφ×η推导出电机电流公式I=P/( U×√3×cosφ×η),然后核算出电机功率,思路清析,操作方便! 8、勾月电脑操作 ......... 三、操作方法: 1、解压...
Estesnãoquerem mais um inimigo conquistar o cosmos eestãodispostos tutu para eliminar os humanos。3.Porquê? 异形星球的起源是地球上人的共同点。 阿斯西姆·桑多(Assim sendo),乌拉圭人(Oug vez)...
利用这个方法先把因子算好,这样就不用在每一步都计算sin跟cos的值,使到时间变快了很多。 虽然如此,计算一幅256*256的图使用I5CPU都得需要10秒钟,所以这种算法只能将着用,因此我也懒得写IDFT了- -。 所以为了...
COS资源包 大小 价格 标准型存储容量 200GB 1年 171元 下行流量 500GB 3个月 177元 项目说明 platform-plus是一个轻量级的,前后端分离的Java快速开发平台 JavaDoc: 前端地址: 使用案例 完整案例登记列表,请查看...
COS资源包: 标准型存储容量: 100GB 1年 88元 200GB 1年 171元 下行流量: 100GB 3个月 37元 200GB 3个月 71元 500GB 3个月 177元 项目说明 platform-plus是一个轻量级的,前后端分离的Java快速开发平台 JavaDoc: ...