一种文件上传系统的制作方法

文档序号:18752046发布日期:2019-09-24 21:16阅读:186来源:国知局
一种文件上传系统的制作方法

本发明涉及信息传输技术领域,特别涉及一种文件上传系统。



背景技术:

在现代通信技术领域中,信息的共享和文件的传输越来越普遍,所以对于文件的传输速度的要求也越来越高。

目前对于文件的上传,基本都是通过前端浏览器获取文件,并将文件传输给后台服务器,后台服务器再将文件传输给存储服务器进行存储;上述技术方案中文件经过前端浏览器和后台服务器的两次传输,才能实现对文件的上传,两次文件的传输不仅会消耗大量的流量和带宽,尤其是当传输较大文件时,还会严重影响文件的上传速度;

因此,急需一种文件上传系统。



技术实现要素:

为解决上述技术问题,本发明提供一种文件上传系统,用以降低文件上传所需的流量,加快文件的上传速度。

本发明实施例中提供了一种文件上传系统,所述系统包括:前端浏览器、后台服务器和存储服务器;其中,

所述前端浏览器,用于获取待上传的文件,并获取所述文件的文件大小信息,并将所述文件大小信息向所述后台服务器传输;

所述后台服务器,用于将所述文件大小信息与预设文件大小阈值信息进行比对,当所述文件的文件大小信息超过所述预设文件大小阈值信息时,则向所述前端浏览器传输分片处理指令;

所述前端浏览器,用于接收到所述分片处理指令后,对所述文件进行分片处理,并将分片处理后获取的多个子文件向所述存储服务器传输;

所述存储服务器,用于接收到所述前端浏览器传输的所述子文件后,向所述前端浏览器传输所述子文件对应的关键字段;

所述前端浏览器,用于根据所述文件对所述关键字段进行组装,形成关键字段组,并向所述存储服务器传输;

所述存储服务器,用于根据所述关键字段组对所述前端浏览器传输的多个所述子文件进行分配合并,形成所述文件进行存储。

在一个实施例中,所述前端浏览器,还用于根据所获取的待上传的文件,获取所述文件的文件特征信息,并将所述文件特征信息向所述存储服务器传输;

所述文件特征信息,包括所述文件的大小信息、文件类型信息以及文件sha256摘要信息。

在一个实施例中,所述后台服务器,还用于当所述文件的文件大小信息不超过所述预设文件大小阈值信息时,向所述前端浏览器传输直接上传指令;

所述前端浏览器接收到所述后台服务器传输的所述直接上传指令时,将所述文件向所述存储服务器传输进行存储。

在一个实施例中,所述后台服务器,还用于将所述文件的文件大小信息向所述存储服务器传输;所述存储服务器,用于根据所述文件大小信息预留出相应大小的存储空间。

在一个实施例中,所述前端浏览器,包括获取模块、分片模块和子文件生成模块;

所述获取模块,用于获取所述文件的文件类型,并将所述文件和所述文件的文件类型向所述分片模块传输;

所述分片模块,包括文本分片单元、图片分片单元、音频分片单元、视频分片单元;

所述分片模块,用于接收到所述获取模块传输的所述文件的文件类型为文本类型时,将所述文件向所述文本分片单元传输进行分片处理,并将分片处理后的所述文件向所述子文件生成模块传输;

所述分片模块,用于接收到所述获取模块传输的所述文件的文件类型为图片类型时,将所述文件向所述图片分片单元传输进行分片处理,并将分片处理后的所述文件向所述子文件生成模块传输;

所述分片模块,用于接收到所述获取模块传输的所述文件的文件类型为音频类型时,将所述文件向所述音频分片单元传输进行分片处理,并将分片处理后的所述文件向所述子文件生成模块传输;

所述分片模块,用于接收到所述获取模块传输的所述文件的文件类型为视频类型时,将所述文件向所述视频分片单元传输进行分片处理,并将分片处理后的所述文件向所述子文件生成模块传输;

所述子文件生成模块,用于根据所述分片模块传输的分片处理后的所述文件生成子文件。

在一个实施例中,所述文本分片单元,用于根据所述预设文件大小阈值信息对所述文件按照文件大小进行分片处理;

所述图片分片单元,用于获取所述文件中的图片节点,并根据所述图片节点对所述文件进行分片处理;

所述音频分片单元,用于获取所述文件中的音频频率信息,并根据所述音频频率信息对所述文件进行分片处理;

所述视频分片单元,用于获取所述文件中的视频时长信息,并根据预设视频时长间隔对所述文件进行分片处理。

在一个实施例中,所述前端浏览器向所述存储服务器传输所述子文件的具体步骤包括:

所述前端浏览器向所述存储服务器传输文件传输指令;

所述存储服务器,接收到所述前端浏览器传输的所述文件传输指令时,将所述存储服务器的id信息向所述前端浏览器传输;

所述前端浏览器,用于根据所述存储服务器的id信息从所述前端浏览器的存储器中查找与所述存储服务器的id信息相对应的加密算法;所述前端浏览器,还用于根据所述加密算法对所述子文件进行加密处理,并将加密处理后的子文件向所述存储服务器传输;

所述存储服务器,根据预设的解密算法对所述前端浏览器传输的所述加密处理后的子文件进行解密处理,获取所述子文件;

所述前端浏览器的存储器内存储有所述存储服务器的id信息和所述存储服务器的id信息对应的所述加密算法。

在一个实施例中,所述存储服务器,还包括文件读取模块、文件名生成模块、文件存储模块;

所述文件读取模块,用于获取所述文件的文件类型、存储时间和文件大小,并向所述文件名生成模块传输;

所述文件名生成模块,用于根据所述文件的文件类型、存储时间和文件大小生成文件名,并向所述文件存储模块传输;

所述文件存储模块,用于创建文件夹,并将所述文件名作为所述文件夹的文件名称,将所述文件存储于所述文件夹内。

在一个实施例中,所述前端浏览器向所述存储服务器传输所述子文件时,对所述子文件的冗余信息进行剔除处理,处理具体步骤具体为:

步骤s1、将所述文件转变为机器所能识别的二进制机器码;

步骤s2、将所述二进制机器码按每个字节进行切割,每一个字节形成一条数据,则共有p条数据,每条数据含有8位数值,则形成p行8列的矩阵b;

s3、对所述矩阵b进行列的优化,其具体步骤如下所述;

s301、构建运算矩阵y,所述矩阵y的初始值为矩阵b,同时构建标识向量m,所述m的初始值为空;

s302、利用公式(1)判断所述矩阵y的第一列是否需要剔除;

cf=sum(y1)

ifcf=pthenk=1,t=[1,0]

elseifcf=0thenk=1,t=[0,0]

elseify1≠y2thenk=1,t=[0,1]

elsek=0,t=[0,0]

m=[m,t]

(1)

其中,cf,t为中间参数,sum为求和,y1为矩阵y的第一列的值,if…then…为判断if和then之间的条件是否满足,如果满足条件则运行then后面的计算,如果不满足,则运行下一行的else后面的运行,y1≠y2为矩阵y的所有行的第一列的值都不等于第二列的值,[m,t]为将t的值,添加到向量m的后面,k为判断函数,若k=0,则进行步骤s4,若k等于1则,将矩阵y的第一列的值删除,然后将删除第1列后的矩阵y重复步骤s302;

s4、对已经剔除了所有需要剔除的重复列后的矩阵y进行第二次信息剔除,其中具体步骤如下所述;

s401、构建信息矩阵q,首先将矩阵y的第一行的值,作为矩阵q的第一条数据,矩阵y的第二行的值,赋值给待检测向量j,同时构建位置向量z,z的第一个值为1,同时剔除矩阵y的前两行;

s402、利用公式(2)调整信息矩阵q,和位置向量i;

gl=[cl1,cl2,……cllength(q)]

maxz=max(gl)

ifmaxz=1thenz=[z,find(gl=1)]

elseq=q.add(j),z=[z,length(q)+1]

(2)

其中,glc、gl、maxz为中间参数,length()为统计括号内的值的数量,若括号内为向量则统计向量的值的个数,若括号内为矩阵,则统计矩阵的行数,ji为向量j的第i个值,qc,i为矩阵q的第c行第i列的值,max(gl)为求gl的最大值,find(gl=1)为找到向量gl中为1的值所对应的位置,[z,find(gl=1)]为将find(gl=1)的值添加到向量z的后面,q.add(j)为将向量j添加到矩阵q的最后一行,[z,length(q)+1]为将length(q)+1添加到向量z的后面;

s403、判断矩阵y是否为空,若不是,则将矩阵y的第一行赋值给待检测向量j,同时删除矩阵y的第一行,重复步骤s403,若矩阵y为空,则运行步骤s5;

s5、将信息矩阵q、位置向量z和标识向量m作为冗余信息剔除处理后的信息,进行传输,同时需要使用所述信息时,利用冗余信息剔除处理的反向操作进行还原。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

图1为本发明所提供一种文件上传系统的结构示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

本发明实施例提供了一种文件上传系统,如图1所示,系统包括:前端浏览器11、后台服务器12和存储服务器13;其中,

前端浏览器11,用于获取待上传的文件,计算文件的文件大小信息,并将文件大小信息向后台服务器12传输;

后台服务器12,用于将文件大小信息与预设文件大小阈值信息进行比对,当文件的文件大小信息超过预设文件大小阈值信息时,则向前端浏览器11传输分片处理指令;

前端浏览器11,用于接收到分片处理指令后,对文件进行分片处理,并将分片处理后获取的多个子文件向存储服务13器传输;

存储服务器13,用于接收到前端浏览器11传输的子文件后,向前端浏览器11传输子文件对应的关键字段;

前端浏览器11,用于根据文件对关键字段进行组装,形成关键字段组,并向存储服务器13传输;

存储服务器13,用于根据关键字段组对前端浏览器11传输的多个子文件进行分配合并,形成文件进行存储。

上述系统的工作原理在于:前端浏览器11获取待上传文件,并获取该文件的文件大小信息,并将文件大小信息向后台服务器12传输;后台服务器12将文件大小信息与预设文件大小阈值信息(例如预设文件大小阈值信息为:25mb)进行比对,当文件的文件大小信息超过预设文件大小阈值信息时,向前端浏览器11传输分片处理指令;前端浏览器11对文件进行分片处理,获取文件的多个子文件,并将多个子文件向存储服务器13传输;存储服务器13接收到子文件后向前端浏览器11返回子文件对应的关键字段;前端浏览器11,根据文件对关键字段进行组装,形成关键字段组,并将关键字段组向存储服务器13传输;存储服务器13根据关键字段组对前端浏览器11传输的多个子文件进行分配合并,形成文件进行存储。

上述系统的有益效果在于:通过前端浏览器,实现了对待上传文件和待上传文件的文件大小信息的获取;并通过后台服务器根据文件的文件大小信息判断是否对文件进行分片处理,当判断需进行分片处理时,则向前端浏览器传输分片处理指令;前端浏览器接收到分片处理指令时,对文件进行分片处理,实现对文件的切片,获取子文件,并将子文件向存储服务器传输;从而实现了前端浏览器对文件的切片以及传输;存储服务器接收到子文件后,向前端浏览器返回关键字段,前端浏览器根据文件对关键字段进行组装,形成关键字段组,向存储服务器传输;存储服务器根据关键字段组对多个子文件进行分配合并,形成文件进行存储;从而实现了对文件的上传,上述系统通过判断文件的文件大小信息超过预设文件大小阈值信息时对文件进行分片处理,形成子文件向存储服务器传输;存储服务器根据关键字段组,实现对多个子文件合并,进而实现对文件的获取存储,通过对文件进行分片传输,解决了传统技术中传输文件所需的消耗大量的流量和带宽的缺陷,进而提高了文件的上传速度,同时也有效地提高了系统的传输效率。

在一个实施例中,前端浏览器,还用于根据所获取的待上传的文件,获取文件的文件特征信息,并将文件特征信息向存储服务器传输;

文件特征信息,包括文件的大小信息、文件类型信息以及文件sha256摘要信息。通过上述技术方案实现了存储服务器对文件的特征信息的获取。

在一个实施例中,后台服务器,还用于当文件的文件大小信息不超过预设文件大小阈值信息时,向前端浏览器传输直接上传指令;

前端浏览器接收到后台服务器传输的直接上传指令时,将文件向存储服务器传输进行存储。上述技术方案中通过后台服务器,将文件的文件大小信息与预设文件大小阈值信息比对,判断是否对文件进行分片处理,当文件的文件大小信息不超过预设文件大小阈值信息时,则将文件向存储服务器传输进行存储,避免对较小的文件进行分片处理,影响文件的上传效率。

在一个实施例中,后台服务器,还用于将文件的文件大小信息向存储服务器传输;存储服务器,用于根据文件大小信息预留出相应大小的存储空间。上述技术方案中后台服务器,还用于将文件的文件大小信息向存储服务器传输,存储服务器根据文件大小信息预留出相应大小的存储空间,方便对前端浏览器传输的文件进行存储,避免因预留存储空间不足,影响文件的上传。

在一个实施例中,前端浏览器,包括获取模块、分片模块和子文件生成模块;

获取模块,用于获取文件的文件类型,并将文件和文件的文件类型向分片模块传输;

分片模块,包括文本分片单元、图片分片单元、音频分片单元、视频分片单元;

分片模块,用于接收到获取模块传输的文件的文件类型为文本类型时,将文件向文本分片单元传输进行分片处理,并将分片处理后的文件向子文件生成模块传输;

分片模块,用于接收到获取模块传输的文件的文件类型为图片类型时,将文件向图片分片单元传输进行分片处理,并将分片处理后的文件向子文件生成模块传输;

分片模块,用于接收到获取模块传输的文件的文件类型为音频类型时,将文件向音频分片单元传输进行分片处理,并将分片处理后的文件向子文件生成模块传输;

分片模块,用于接收到获取模块传输的文件的文件类型为视频类型时,将文件向视频分片单元传输进行分片处理,并将分片处理后的文件向子文件生成模块传输;

子文件生成模块,用于根据分片模块传输的分片处理后的文件生成子文件。上述技术方案中通过获取模块实现了对文件的文件类型的获取,并根据文件类型将文件发往分片模块中相应的分片单元进行分片处理,子文件生成模块根据传输的分片处理后的文件生成子文件,从而实现了系统对文件的分片处理,并且通过分片模块中的文本分片单元、图片分片单元、音频分片单元以及视频分片单元,实现了对不同类型文件的分片处理;从而通过文件生成模块,实现了对不同类型文件的子文件的生成。

在一个实施例中,文本分片单元,用于根据预设文件大小阈值信息对文件按照文件大小进行分片处理;

图片分片单元,用于获取文件中的图片节点,并根据图片节点对文件进行分片处理;

音频分片单元,用于获取文件中的音频频率信息,并根据音频频率信息对文件进行分片处理;

视频分片单元,用于获取文件中的视频时长信息,并根据预设视频时长间隔对文件进行分片处理。上述技术方案中通过文本分片单元、图片分片单元、音频分片单元以及视频分片单元,实现了对不同文件类型的文件的分片处理,进一步方便了系统对文件的快速传输。

在一个实施例中,前端浏览器向存储服务器传输子文件的具体步骤包括:

前端浏览器向存储服务器传输文件传输指令;

存储服务器,接收到前端浏览器传输的文件传输指令时,将存储服务器的id信息向前端浏览器传输;

前端浏览器,用于根据存储服务器的id信息从前端浏览器的存储器中查找与存储服务器的id信息相对应的加密算法;前端浏览器,还用于根据加密算法对子文件进行加密处理,并将加密处理后的子文件向存储服务器传输;

存储服务器,根据预设的解密算法对前端浏览器传输的加密处理后的子文件进行解密处理,获取子文件;

前端浏览器的存储器内存储有存储服务器的id信息和存储服务器的id信息对应的加密算法。上述技术方案中前端浏览器向存储服务器传输文件传输指令,存储服务器将存储服务器的id信息向前端浏览器传输,前端浏览器根据存储服务器的id信息从前端浏览器的存储器中查找与存储服务器的id信息相对应的加密算法,并采用所获取的加密算法对子文件进行加密处理后向存储服务器传输,存储服务器采用预设的解密算法对传输的加密处理后的子文件进行解密处理,获取子文件;从而实现了前端浏览器将子文件向存储服务器的加密传输,进一步提高了文件传输的安全性。

在一个实施例中,存储服务器,还包括文件读取模块、文件名生成模块、文件存储模块;

文件读取模块,用于获取文件的文件类型、存储时间和文件大小,并向文件名生成模块传输;

文件名生成模块,用于根据文件的文件类型、存储时间和文件大小生成文件名,并向文件存储模块传输;

文件存储模块,用于创建文件夹,并将文件名作为文件夹的文件名称,将文件存储于文件夹内。上述技术方案中存储服务器对文件进行存储时,通过文件读取模块获取文件的文件类型、存储时间和文件大小;文件名生成模块根据文件的文件类型、存储时间和文件大小生成文件名;文件存储模块创建文件夹并将该文件名作为该文件夹的文件名称,将文件存储于该文件夹内;从而实现了存储服务器对文件存储时的文件夹的创建以及文件夹的文件名称的生成,并且根据文件类型、存储时间和文件大小生成文件名,方便了工作人员对存储服务器内的文件进行查询和管理。

在一个实施例中,前端浏览器向存储服务器传输子文件时,对子文件的冗余信息进行剔除处理,处理具体步骤具体为:

步骤s1、将文件转变为机器所能识别的二进制机器码;

步骤s2、将二进制机器码按每个字节进行切割,每一个字节形成一条数据,则共有p条数据,每条数据含有8位数值,则形成p行8列的矩阵b;

s3、对矩阵b进行列的优化,其具体步骤如下;

s301、构建运算矩阵y,矩阵y的初始值为矩阵b,同时构建标识向量m,m的初始值为空;

s302、利用公式(1)判断矩阵y的第一列是否需要剔除;

cf=sum(y1)

ifcf=pthenk=1,t=[1,0]

elseifcf=0thenk=1,t=[0,0]

elseify1≠y2thenk=1,t=[0,1]

elsek=0,t=[0,0]

m=[m,t]

(1)

其中,cf,t为中间参数,sum为求和,y1为矩阵y的第一列的值,if…then…为判断if和then之间的条件是否满足,如果满足条件则运行then后面的计算,如果不满足,则运行下一行的else后面的运行,y1≠y2为矩阵y的所有行的第一列的值都不等于第二列的值,[m,t]为将t的值,添加到向量m的后面,k为判断函数,若k=0,则进行步骤s4,若k等于1则,将矩阵y的第一列的值删除,然后将删除第1列后的矩阵y重复步骤s302;

s4、对已经剔除了所有需要剔除的重复列后的矩阵y进行第二次信息剔除,其中具体步骤如下;

s401、构建信息矩阵q,首先将矩阵y的第一行的值,作为矩阵q的第一条数据,矩阵y的第二行的值,赋值给待检测向量j,同时构建位置向量z,z的第一个值为1,同时剔除矩阵y的前两行;

s402、利用公式(2)调整信息矩阵q,和位置向量i;

gl=[cl1,cl2,……cllength(q)]

maxz=max(gl)

ifmaxz=1thenz=[z,find(gl=1)]

elseq=q.add(j),z=[z,length(q)+1]

(2)

其中,glc、gl、maxz为中间参数,length()为统计括号内的值的数量,若括号内为向量则统计向量的值的个数,若括号内为矩阵,则统计矩阵的行数,ji为向量j的第i个值,qc,i为矩阵q的第c行第i列的值,max(gl)为求gl的最大值,find(gl=1)为找到向量gl中为1的值所对应的位置,[z,find(gl=1)]为将find(gl=1)的值添加到向量z的后面,q.add(j)为将向量j添加到矩阵q的最后一行,[z,length(q)+1]为将length(q)+1添加到向量z的后面;

s403、判断矩阵y是否为空,若不是,则将矩阵y的第一行赋值给待检测向量j,同时删除矩阵y的第一行,重复步骤s403,若矩阵y为空,则运行步骤s5;

s5、将信息矩阵q、位置向量z和标识向量m作为冗余信息剔除处理后的信息,进行传输,同时需要使用信息时,利用冗余信息剔除处理的反向操作进行还原。通过上述技术方案,可以在不损失任何信息量的情况下,大幅度的减少文件的存储空间,提高存储效率,同时,对文件上传的时候能大幅度的提高速度,减少传输时所需流量的大小,减少内部带宽、临时占用,同时所述技术不需要增加额外的设备,仅仅需要简单的一些计算则能实现,在不增加成本的情况下,能大幅度提升智能效率。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1