使用原生Java Web来实现大文件的上传
版权所有 2009-2018荆门泽优软件有限公司
保留所有权利
产品首页: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支持向服务器上传整个文件夹,并且在服务端保存时与本地目录结构完全保持一致,同时在数据库中也保留文件夹的层级结构。开发人员可以借助于数据库中的层级信息方便的管理文件,管理人员也可以在服务器中直接对上传的文件夹数据进行管理。

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

通用浏览器支持
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计算,可实现服务器文件去重,秒传功能。

技术规格
支持语言: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实现浏览器端大文件分片上传
版权所有 2009-2018荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...
- java springboot 大文件分片上传处理
参考自:https://blog.csdn.net/u014150463/article/details/74044467 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时 ...
- Ajax+Java实现大文件切割上传
技术体系:html5(formdata) + java + servlet3.0+maven + tomcat7 <!DOCTYPE html> <html> <head ...
- Hadoop如何将TB级大文件的上传性能优化上百倍?
这篇文章,我们来看看,Hadoop的HDFS分布式文件系统的文件上传的性能优化. 首先,我们还是通过一张图来回顾一下文件上传的大概的原理. 由上图所示,文件上传的原理,其实说出来也简单. 比如有个TB ...
- js大文件分块上传断点续传demo
文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠.网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹. ...
- 使用webuploader组件实现大文件分片上传,断点续传
本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...
- vue大文件分片上传插件
最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...
- nodeJs + js 大文件分片上传
简单的文件上传 一.准备文件上传的条件: 1.安装nodejs环境 2.安装vue环境 3.验证环境是否安装成功 二.实现上传步骤 1.前端部分使用 vue-cli 脚手架,搭建一个 demo 版本, ...
- PHP实现大文件的上传设置
打开php.ini,首先找到 ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; 区域,有影响文件上传的以下几个参数: file_uploads = ...
随机推荐
- ios 避免navigationcontroller出现时scrollview内容被resize
viewDidLoad中设置以下属性 self.automaticallyAdjustsScrollViewInsets = NO;
- egret-初步接触
class HelloTime extends egret.DisplayObjectContainer { public constructor() { super(); this.addEvent ...
- ubuntu查询可用安装包
当使用apt-get install packages时,如果不知道安装包的具体名称,可以使用关键字进行搜索,使用:apt-cache search keywords
- Graylog安装配置
ES集群健康检测:curl -sXGET http://localhost:9200/_cluster/health?pretty=true | grep "status" | a ...
- getattr()函数详解
setattr(object,name,value): 作用:设置object的名称为name(type:string)的属性的属性值为value,属性name可以是已存在属性也可以是新属性. get ...
- ssh反向连接内网主机
holer听别人说也挺好用不过本人没试过:https://github.com/Wisdom-Projects/holer 利用autossh建立稳定隧道,前提双方互加公钥信任. # yum inst ...
- WinForm多线程编程与Control.Invoke的应用浅谈
在WinForm开发中,我们通常不希望当窗体上点了某个按钮执行某个业务的时候,窗体就被卡死了,直到该业务执行完毕后才缓过来.一个最直接的方法便是使用多线程.多线程编程的方式在WinForm开发中必不可 ...
- vcf格式简介
1)背景 伴随着大规模的基因分型及测序工程的产生(例如1000 Genomes Project),之前的信息贮存格式例如gff文件它记录了每一个基因的详细信息,其中许多基因信息在基因组之间是共享的,而 ...
- Swagger与SpringMVC整合
依赖管理 在整合之前,需要把所有使用到的依赖包全部引入.网上很多文章只是简单告诉读者引入swagger-springmvc-1.0.2.jar包,但是随后你发现这远远不够,还需要很多包,如下所示: ...
- hdoj1257(DP-LIS/贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257 方法1--贪心: 定义一个数组f[30005],由于题目没给数据量大小,故为了保险,开到最大(高 ...