gxdxj wqdmt稳重的迷你裙
摘要:随着计算机技术的发展,网络资源文件的管理越来越受到重视。 对大容量文件传输的便利性、安全性和可靠性的要求也越来越高。 本文以目前流行的前端框架Bootstrap为基础,结合HTML5、jQuery技术、PHP等技术,设计了基于Web的大容量附件上传管理系统,前端附件上传详细介绍了断点重传、自动重传等实现技术,测试结果证明该系统能很好地满足大容量附件上传的需要。
关键词:文件上传; Bootstrap; 重新分发jQuery断点
中图分类编号: TP311文献识别码: a
文章编号: 1009-3044(2020 ) 01-0083-03
1概述
现代计算机技术发展迅速,网络资源文件的管理越来越受到重视。 因此,各种便于管理用户文件的互联网技术越来越盛行。 以百度网盘为例,百度网盘有桌面版和移动版,技术非常成熟,还提供了断点重新分发功能,但由于需要在基于TCP/IP协议传输大文件时建立连接的过程,因此用户的另一方面,下载功能的限速,如果用户没有启动百度网盘的会员服务,下载文件的互联网传输将限制在一个线程以内,最大传输速度约为128Kbyte秒,非常影响用户的体验。
为此,本文借鉴百度网盘的设计思想,实现了局域网版的网盘(大附件管理系统),供教师用于管理各类教学视频上传、学生提交的大作业等各类大容量文件,学生使用该系统该系统既可以访问桌面,也可以访问移动,为教师管理各种大型文件提供了web服务。
2系统总体设计
该系统采用Bs架构进行系统设计。 前端采用目前流行的jQuery前端框架Bootstrap,同时采用响应页面设计,交互简单方便; 在后台使用PHP和MySQL数据库管理文件数据。 整个系统分为Web客户端和Web服务器,在前台之间通过JsON进行数据通信。
系统的整体功能结构如图所示。
2.1前端文件上传插件
该模块的设计实现比较简单。 它依赖于服务端文件管理模块,提供断点的持续功能,包括链接到服务端文件管理页面的用户的登录和验证页面。
2.2服务端文件管理
文件管理模块是该系统的核心,由三个插件组成:文件表、文件树和文件编辑模块。 主要功能包括
1 )基于Web的文件资源浏览。
2 )在线打开和编辑基于Web的文件。
3 )基于HTYP协议的大文件传输。
4 )大文件传输断点的重新传输功能。
5 )文件和文件夹的基本操作,包括下载、删除、复制和移动。
6 )用户文件空间管理。
2.3数据库和文件服务器
本系统使用MySQL数据库,保存用户信息、上传文件的基本信息。 文件断点更新模块使用base54加密存储技术管理文件信息。
3关键技术实现
3.1断点持续实现基本思路
断点重新传递功能是文件安全上传的重要保障,要实现断点重新传递,可以使用前台表单上的input标记选择文件,也可以使用html 5文件API中新引入的FormData 服务器重命名文件并将其保存到临时目录中,然后在继续操作一段时间后将其删除。 另外,HTYP协议是无状态协议,用户无法与服务器保持长时间的连接,因此在实际开发过程中不能以Buffer的形式提交文件对象。
本系统采用以下方法。
1 )对获取的文件对象进行分割切片,将小块传输到服务器。 在后台PHP端采用APPEND方式将文件合并在一起。
2 )在上传文件之前执行初始化操作。 也就是说,通过向服务查询上传的文件大小来确定本轮分割的开始字节位置。
3 )每次上传完成时,都需要更新上传文件的大小记录,并在数据库中修改文件信息。
4 )最后需要Tag客户端和服务器文件,使每个文件块一一对应,防止a文件的一部分写入b文件。
3.2文件上传的FormData软件包格式
上载文件的过程可以概括为单击“选择文件”按钮启动文件框以打开事件,然后执行文件上载初始化操作。 这意味着向服务器查询断点信息,并将FormData封装的文件块发送到服务器。
使用将二进制文件对象封装为表单数据的FormData类,利用jQuery的Ajax将其上载到服务器端处理程序upload.php,并将pmcessDa-ta和contentType属性上载到false
3.3断点持续实现
根据HTYP的无状态特性,在文件片上传的同时注意到最大的传输单位为2Mbyte,本系统规定文件块的大小为1Mbyte,具体实现的Js代码如下。
在后台服务器端接收通过PHP上载的文件块的方法包括:
通过首先定义初始化函数并向服务查询上传的文件大小,确保
定本次应该分割的字节位置:相应的,在服务器端也需要做初始化查询的脚本来配合前端完成功能:
4总结
为满足在校学生便捷的上交大容量作业,教师方便管理各类教学视频、学生上交的大作业等需求,本文研究并实现了一个基于web的大附件上传管理系统。基本满足目前工作需要。但该系统的文件管理采用了实体文件目录树形结构,因此在文件共享、大量文件移动等方面略显不足。在下一版本改进中,将考虑使用完全二叉树的形式保存目录结构,在查找算法上结合并查集进行快速递归,从而提高系统的性能。