使用原生Java Web来实现大文件的上传

时间:2023-06-02 10:43:19

版权所有 2009-2018荆门泽优软件有限公司

保留所有权利

官方网站:http://www.ncmem.com/

产品首页:http://www.ncmem.com/webapp/up6.2/index.asp

在线演示:http://www.ncmem.com/products/up6.2/index.htm

产品介绍:http://www.cnblogs.com/xproer/archive/2012/10/26/2741264.html

升级日志:http://www.cnblogs.com/xproer/archive/2012/10/26/2741268.html

资源:控件包,开发文档,示例下载,

联系信箱:1085617561@qq.com

联系QQ:1085617561

随着文件传输功能在各种应用系统中的普及,过去用户对文件上传需求也发生了巨大的变化,在各种企业系统中对文件传输的需求要求并不高,一般情况下只要能达到60%的稳定使用率即可达到要求。但是在互联网应用中这一标准变得更加严格,必须要达到95%的稳定使用率。基于这种标准传统企业系统根本无法满足互联网用户的需求。

在互联网应用中用户传输的文件不仅变的更多,文件也变得更大,同时用户上传的文件夹结构也更加复杂。这些数据的处理使企业可能付出更高的成本。

借肋于全新的泽优大文件上传控件(up6),在为企业节省成本的同时帮助企业解决这些难题。

文件夹结构支持

up6支持向服务器上传整个文件夹,并且在服务端保存时与本地目录结构完全保持一致,同时在数据库中也保留文件夹的层级结构。开发人员可以借助于数据库中的层级信息方便的管理文件,管理人员也可以在服务器中直接对上传的文件夹数据进行管理。

使用原生Java Web来实现大文件的上传

大文件传输

up6支持上传30G+的大型文件,且不限制文件类型。在文件上传过程中数据库的负载压力为0。在传输大文件过程中,控件会使用标准HTTP协议向服务器POST文件块数据。比如用户上传1G的文件时,up6会将1G的文件以1MB为单位分成1024个文件块然后依次传输。这样便会降低一整个大文件给系统带来的开销。

使用原生Java Web来实现大文件的上传

通用浏览器支持

up6支持windows平台下的所有主流浏览器,包括最常见的IE、Chrome、Firefox、Edge以及基于IE和Chrome内核的其他浏览器,如:360、搜狗、猎豹、百度等浏览器。

文件断续传

up6在上传大型文件时会自动记录文件位置信息,在复杂的网络环境中,比如网络不稳定的情况下上传被中断后仍然能够从前一次上传的位置继续上传。

文件夹断点续传

up6在上传文件夹时会自动记录文件夹的位置信息。在上传被中断后仍然能够继续上传。

附加字段

up6通过JS提供了附加字段的接口,开发人员能够通过JS SDK轻松的添加附加字段。比如为每一个文件设置单独的文件类型。

自动上传文件

up6支持自动上传本地指定路径的文件。提高使用灵活性。比如用户在页面中点击一个按钮,然后自动将D:/soft/QQ2013.exe这个文件上传到服务器中。

自定义存储路径

开发人员能够简单的修改服务端代码来自定义文件存储路径和规则。

跨域支持

up6提供跨域支持,借助于此功能,开发人员能够实现业务系统与存储系统分离,减轻Web系统的负载压力。大幅度提升整体系统性能。

开发语言支持

up6提供了asp.net,jsp,php三种语言的DEMO,开发人员可以直接在项目中借助于此DEMO进行二次开发。

集成与二次开发

up6提供基于JS的SDK,开发者可以在Web系统中集成up6,up6提供较为丰富的接口,开发者可根据自身需求进行二次开发,使用up6作为业务系统的文件上传模块可以有效的将业务逻辑与文件传输区分开来,从而降低业务系统复杂度。

轻量级插件

up6是一个在网页中使用的文件上传插件,基于标准的HTTP协议,浏览器插件包仅有几百KB,集成插件包也仅仅只有不到3MB,安装非常方便。

上传下载全连通

up6可以与down2无缝整合实现上传下载功能。用户能够轻松的进行文件批量上传下载,和文件夹的批量上传下载。比如用户上传一个文件夹后需要将此文件夹下载到D盘,并且保留层级结构,down2便可实现此功能。

缓存池技术的大规模使用

up6在上传任务的处理中大规模使用的缓存池技术,即上传文件时首先检查缓存池中是否存在上传对象,如果已存在则直接使用缓存池中的上传对象。在文件上传完后将上传对象回收到缓存池中。这一特性使得用户在上传海量文件时不用再频繁创建上传对象。同时内存占用将变得更低。

Session会话支持

up6全面支持了Session,这样使得HttpUploader6能够与各种应用系统无缝的整合。服务器端对用户上传操作,用户权限控制更灵活。

全面增强对分布式云存储环境的支持

up6为分布式存储应用环境提供了更好的支持。借助于up6,在各存储节点无缝对接更加简单。开发人员无需关心存储跳转对接逻辑,从而降低了分布式存储应用布署的复杂性。

全面提高安全性

通过up6提供的SESSION功能,现在服务端能够更严格的控制上传安全性,同时不降低上传性能。

高效的多任务模式

up6进一步优化了多任务功能,现在不仅能够轻松处理多个上传任务,而且每个任务的处理速度并不会受到任何影响。

更加符合海量文件的上传需求

up6新增的文件夹上传可满足不同用户的上传需求。在上传文件夹时用户不需要担心文件夹的文件数量是否过多,文件夹中的文件是否过大。

文件及文件夹MD5计算

up6支持文件和文件夹MD5计算,可实现服务器文件去重,秒传功能。

使用原生Java Web来实现大文件的上传 使用原生Java Web来实现大文件的上传

技术规格

支持语言:PHP,JSP,ASP.NET(C#),

支持平台:Visual Studio 6.0/2002/2003/2005/2008/2010/2012/2013/2015/2017,C++ Builder 6.0/2009/2010,Delphi 7/2009,Visual Basic 6.0/2008,MyEclipse8.x

支持脚本:JavaScript,VBScript

支持服务器:Windows NT,Windows 2003,Windows XP,Windows Vista,Windows 7,Linux,Unix,

支持浏览器:IE6,IE7,IE8(x86,x64),IE9(x86,x64),IE10(x86,x64),IE11(x86,x64),360安全浏览器,360极速浏览器,QQ浏览器,搜狗浏览器,Maxthon(遨游)浏览器1.X,Maxthon(傲游)浏览器2.x,Firefox,Chrome,Opera 23+

支持文件大小:30G+

支持文件夹:1W+

支持文件类型:任意类型

插件技术:ActiveX,NPAPI,Native Message

项目截图。目前已经提供了MySQL,Oracle,SQL数据库示例。后台代码也已经全部提供,开发人员不需要再写一句代码,直接复制到项目中即可以使用。上传,下载,续传,分片全流程都已经有了。

使用原生Java Web来实现大文件的上传使用原生Java Web来实现大文件的上传使用原生Java Web来实现大文件的上传

业务逻辑类

使用原生Java Web来实现大文件的上传

后台代码。已经包含了文件初始化,文件块处理,文件上传完成,文件夹初始化,文件夹上传完成等逻辑。

使用原生Java Web来实现大文件的上传

服务器端的文件块处理逻辑

使用原生Java Web来实现大文件的上传

分片参数。控件已经自动对文件进行分片操作,不需要开发人员再手动进行分片。控件使用的是内存映射方式分片,直接进行内存操作,比普通的文件分片方式效率更高。

使用原生Java Web来实现大文件的上传

文件块的存储

使用原生Java Web来实现大文件的上传