使用原生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 = ...
随机推荐
- Python之filter函数
描述 filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表. 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 Tru ...
- JAVA WEB开发中的会话跟踪
常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. Http协议是一种无状态的协议,一旦数据交换完毕,客 ...
- VCL编写笔记整理
unit hzqEdit1; interface uses SysUtils, Classes, Controls, StdCtrls; type TEditDataType = (dtpStri ...
- PEP8 Python 编码规范整理(转)
决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此 ...
- mysql 常用option
[mysql 常用option] --host=host_name, -h host_name Connect to the MySQL server on the given host. --por ...
- pymongo CursorNotFound错误
部分报错如下: File "D:\anaconda\lib\site-packages\pymongo\cursor.py", line 1189, in next if len( ...
- 安装Android模拟器
说明:可以直接通过Android SDK目录下的SDK Manager.exe进行安装,我这里写的是通过下载各种文件进行安装的方法,没有通过SDK Manager.exe进行下载安装 一.下载以下内容 ...
- LibreOJ 6277 数列分块入门 1(分块)
题解:感谢hzwer学长和loj让本蒟蒻能够找到如此合适的入门题做. 这是一道非常标准的分块模板题,本来用打标记的线段树不知道要写多少行,但是分块只有这么几行,极其高妙. 代码如下: #include ...
- Redis网络协议
Redis网络协议较为简单,易于阅读. 命令或数据已\r\n结尾,但除了状态回复,其他数据都是二进制安全的(包含长度) 头部如下: + 正确的状态信息,具体信息是当前行+后面的字符. - 一条错误信 ...
- ROS Learning-008 beginner_Tutorials ROS话题
ROS Indigo beginner_Tutorials-07 ROS话题 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LT ...