整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML+AJAX实现上传大文件方案

HTML+AJAX实现上传大文件方案

TML+AJAX实现上传大文件方案,h5批量下载文件,HTTP+断点续传,前端处理大文件/视频分片上传,断点续传,VUE—实现文件上传(多文件),图片上传,VUE 项目大文件上传下载解决方案,VUE将前端的JSON文件上传到后台对应目录,

JAVASCRIPT之分片上传,断点续传的实际项目实现详解,大文件上传如何做断点续传?全端+后端结合开发,VUE实现文件上传(单文件、多文件、分片上传),JS中实现文件上传下载的三种解决方案(推荐),JS实现大文件上传——分片上传方法,完美解决WEB无法上传大文件方法,HTML大文件上传源码,

WEBUPLOAD组件实现文件上传功能和下载功能,js大文件上传下载解决方案,vue大文件上传下载解决方案

asp.net大文件上传下载解决方案,.net大文件上传下载解决方案,webform大文件上传下载解决方案,jsp大文件上传下载解决方案,java大文件上传下载解决方案,JAVASCRIPT 大文件上传下载切片解决方案,JAVASCRIPT 大文件上传下载切割解决方案,JAVASCRIPT 大文件上传下载分割解决方案,JAVASCRIPT 大文件上传下载分块解决方案,JAVASCRIPT 大文件上传下载分片解决方案,web大文件上传下载解决方案,

网页大文件上传下载解决方案,前端大文件上传下载解决方案,html5大文件上传下载解决方案,JAVASCRIPT 大文件上传下载解决方案,支持

之前在网上也找过相关的资料,论坛上也有网友交流过,但是基本上都不太令人满意,与公司这边的项目需求相差太远。

HTML5,VUE2,VUE3,React,javascript等常用前端UI框架,JS框架,网上找的方案大多数都只是一些代码片段,没有提供完整的前后端代码。

原理到是不复杂。上传位置不能传错。用户主要强调稳定性和兼容性。

之前在网上也搜过相关的资料。论坛里面也有一些网络交流,但是都不太令人满意。公司这边实际上需要的是一成熟的商业解决方案,需要能够提供成功案例,公司客户都是国企。

跟项目经理沟通过,这块网上搜到的文章能用的几乎没有。实际上客户那边比较在乎两点。

之前项目上面用Flash比较多一点,现在基本上都是HTML5,断点续传除了页面级以外最好还能够提供离线支持。

支持IE,Chrome和信创国产化环境,比如银河麒麟,统信UOS,龙芯,

支持分片,分块,分段,切片,分割上传。能够突破chrome每域名的5个TCP连接限制,能够突破chrome重启,关闭浏览器续传的限制。

支持10G,20G,50G,100G文件上传和续传,支持秒传,支持文件夹上传,重复文件检测,重复文件校验

支持文件下载,批量下载,下载断点续传,加密下载,端到端加密,加密算法支持国密SM4,多线程下载

支持在服务端保存文件夹层级结构,支持将文件夹层级结构信息保存到数据库中,支持下载时能够将文件夹层级结构下载下来,支持下载文件夹,下载文件夹支持断点续传,

支持加密传输,包括加密上传,加密下载,加密算法支持国密SM4,

支持云对象存储,比如华为云,阿里云,腾讯云,七牛云,AWS,MinIO,FastDFS,

提供手机,QQ,微信,邮箱等联系方式,提供7*24小时技术支持,提供长期技术支持和维护服务,提供远程1对1技术指导,提供二次开发指导,提供文档教程,提供视频教程。1.下载示例

https://gitee.com/xproer/up6-vue-cli



将up6组件复制到项目中

示例中已经包含此目录



1.引入up6组件



2.配置接口地址

接口地址分别对应:文件初始化,文件数据上传,文件进度,文件上传完毕,文件删除,文件夹初始化,文件夹删除,文件列表

参考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de



3.处理事件



启动测试



启动成功



效果



数据库



源码工程文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

源码报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl

OEM版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a

控件源码下载:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

JAX上传的用户体验更好,HTML上传用户使用更方便一点,直接在网页里面就能够操作了。示例在下面提供了,是完整的源代码,有教程,有视频教程,基本上使用非常简单,开发也非常简单,有技术支持,

网上搜了一下,基本上讲这块的文章还是很多,但是就是一个字乱,讲的很混乱。也没有提供完整的前后端示例。

用户上传的文件比较大,有20G左右,直接用HTML传的话容易失败,服务器也容易出错,需要分片,分块,分割上传。也就是将一个大的文件分成若干个小文件块来上传,另外就是需要实现秒传功能和防重复功能,秒传就是用户如果上传过这个文件,那么直接在数据库中查找记录就行了,不用再上传一次,节省时间,实现的思路是对文件做MD5计算,将MD5值保存到数据库,算法可以用MD5,或者CRC,或者SHA1,这个随便哪个算法都行。

分片还需要支持断点续传,现在HTML5虽然提供了信息记录功能,但是只支持到了会话级,也就是用户不能关闭浏览器,也不能清空缓存。但是有的政府单位上传大文件,传了一半下班了,明天继续传,电脑一关结果进度信息就丢失了,这个是他们的一个痛点。

切片的话还有一点就是在服务器上合并,一个文件的所有分片数据上传完后需要在服务器端进行合并操作。


1.下载示例

https://gitee.com/xproer/up6-vue-cli



将up6组件复制到项目中

示例中已经包含此目录



1.引入up6组件



2.配置接口地址

接口地址分别对应:文件初始化,文件数据上传,文件进度,文件上传完毕,文件删除,文件夹初始化,文件夹删除,文件列表

参考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de



3.处理事件



启动测试



启动成功



效果



数据库

首先呢,ajax是的请求数据类型时json,html等形式,实际上是字符串类型,而不是流类型(二进制编码),所以后台不能响应下载操作,但是ajax可以读取后台返回的数据。

我使用jquery开发的轻量级web项目,但是有个需求是需要下载项目中计算出来的数据,并按一定排版排布生成pdf或者word文档。由于前端的插件下载的pdf布局比较受限,容易产生不清晰,乱码等问题,所以只能后台进行。既然ajax不能响应,我采取的方式是模拟表单点击,发送数据到后台,然后在后台进行排版并下载pdf。代码如下:

html

然后对模拟表单下载的代码进行封装成一个方法,往里面传入URL,还有需要填充进pdf的数据fileValue,代码如下:


模拟点击方法与点击下载事件

本例是demo,所以使用servlet,进行简单的数据收发。通过如下代码接收数据:

response.setContentType("text/html;charset=utf-8");

String fileName=request.getParameter("fileName");

然后就是后台的工作了,这里可以简单进行说明一下,也可以自己操作,后台实现下载pdf,word需要借助几个jar包:itextpdf-5.5.jar与itext-asian-5.2.0.jar可以下载pdf,另外的两个可以下载word。使用时注意引入问题。

需要的插件

后台需要事先准备一个pdf放入lib或者其他文件夹中,用来做为模板,往里面写入数据;需要封装一个写入数据后在前台生成pdf的方法,同时需要写一个排版数据的方法,由于篇幅有限,这里就不放代码了。效果如下:

pdf效果图

这样一点击下载,数据发送到后台,进入到排布的方法写入模板,同时保存的方法读取该模板,前台就出现保存或自动下载pdf文件了,一份高清的pdf就生成了。

原创不易,欢迎大家点赞,可以互相讨论,共同进步,谢谢!