具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1为本发明实现文件上传的终端及服务器较佳实施例的运行环境图。该服务器1通过网络2与至少一个终端3(图中以3个为例)通信连接。
在本实施例中,该服务器1还与至少一个存储端4通信链接,存储端4用于存储终端3上传的文件,服务器1与存储端4为文件接收端,服务器1接收终端3上传的文件并将接收的文件存储入存储端4;在本发明的其他实施例中,所述终端3上传的文件存储于服务器1中,服务器1为文件接收端,服务器1接收并存储终端3上传的文件。
所述网络2可以是互联网、移动通信网或其他任意适用的通信网络。所述终端3可以是手机、计算机、平板电脑、个人数字助理(PersonalDigital Assistant,PDA)或其他任意适用的数据处理设备。
如图2所示,为本发明文件上传系统较佳实施例的功能模块图。该文件上传系统11包括哈希值计算模块110、哈希值分析模块111及文件上传模块112。
为了更好的描述该文件上传系统11各组成的功能,以下以四个实施例来分别进行阐述:
实施例一:
该文件上传系统11运行于服务器1中。
哈希值计算模块110,用于监控并响应终端3的待上传文件的上传指令,锁定终端3的待上传文件,分析锁定的待上传文件的大小是否大于预设阀值,在锁定的待上传文件的大小大于预设阀值时,按照预设的规则从锁定的待上传文件中提取内容,并为提取的内容计算哈希值。
哈希值计算模块110,还用于在锁定的待上传文件的大小小于等于预设阀值时,为锁定的待上传文件全部内容计算哈希值。
在本实施例中,所述哈希值为MD5值及/或SHA1值,在本发明的其他实施例中,所述哈希值为其他任意适用类型的哈希验证值。
需要强调的是,哈希值计算模块110为提取的内容计算哈希值的方式有多种,以下示例性的以两个方式进行阐述(以5个提取内容为例):
方式一:将提取的内容进行前后拼接(例如,拼接的内容为:内容1,内容2,内容3,内容4,内容5);将拼接的内容与待上传文件的大小进行组合(例如,将待上传文件的大小作为拼接的内容的最前面内容或者最后面内容与拼接的内容进行组合,例如,组合的内容为:待上传文件的大小,内容1,内容2,内容3,内容4,内容5);对组合后的内容计算哈希值以作为提取内容的哈希值;
方式二:为每一个提取内容计算哈希值;将计算的哈希值及待上传文件的大小组成字符串{例如,组成的字符串为:(哈希值1,哈希值2,哈希值3,哈希值4,哈希值5,待上传文件的大小),或者,(待上传文件的大小,哈希值1,哈希值2,哈希值3,哈希值4,哈希值5),其中,哈希值1对应于内容1,哈希值2对应为内容2,……,哈希值5对应于内容5};对组成的字符串计算哈希值以作为提取内容的哈希值。
所述预设的规则可以为:将待上传文件的内容均分成二个以上等分(例如,均分成5个等分);于每个等分的内容的尾部提取内容且所有提取内容的大小之和等于上述预设阀值(提取的内容大小,例如,第一个等分的内容的尾部提取的内容大小为A,第二个等分的内容的尾部提取的内容大小为B,第三个等分的内容的尾部提取的内容大小为C,第四个等分的内容的尾部提取的内容大小为D,第五个等分的内容的尾部提取的内容大小为E,且上述预设阀值=A+B+C+D+E)。
所述预设的规则还可以为:将待上传文件的内容均分成二个以上等分(例如,均分成5个等分);于最后一个等分的内容的尾部提取内容,于其他等分的首部提取内容,且所有提取内容的大小之和等于上述预设阀值(提取的内容大小,例如,第一个等分的内容的首部提取的内容大小为A,第二个等分的内容的首部提取的内容大小为B,第三个等分的内容的首部提取的内容大小为C,第四个等分的内容的首部提取的内容大小为D,第五个等分的内容的尾部提取的内容大小为E,且上述预设阀值=A+B+C+D+E)。
所述预设的规则还可以为其他任意适用的内容提取规则,以上给出的所述预设的规则的两个具体示例是非穷举行的,本领域的技术人员参照所述预设的规则的示例可以轻易想到其他任意适用的等同的内容提取规则。
哈希值分析模块111,用于将计算的哈希值与文件接收端(例如,服务器1,或者,服务器1与存储端4)已存储的文件的哈希值进行比对,根据哈希值比对结果分析是否有相同的文件存储在文件接收端。
文件上传模块112,用于在没有相同的文件存储在文件接收端时,接收终端3的待上传文件并存储。
实施例二:
该文件上传系统11运行于终端3中。
哈希值计算模块110,用于监控并响应用户的待上传文件的上传指令,锁定用户的待上传文件,分析锁定的待上传文件的大小是否大于预设阀值,在锁定的待上传文件的大小大于预设阀值时,按照预设的规则从锁定的待上传文件中提取内容,并为提取的内容计算哈希值。
哈希值计算模块110,还用于在锁定的待上传文件的大小小于等于预设阀值时,为锁定的待上传文件全部内容计算哈希值。
在本实施例中,所述哈希值为MD5值及/或SHA1值,在本发明的其他实施例中,所述哈希值为其他任意适用类型的哈希验证值。
需要强调的是,哈希值计算模块110为提取的内容计算哈希值的方式有多种,以下示例性的以两个方式进行阐述(以5个提取内容为例):
方式一:将提取的内容进行前后拼接(例如,拼接的内容为:内容1,内容2,内容3,内容4,内容5);将拼接的内容与待上传文件的大小进行组合(例如,将待上传文件的大小作为拼接的内容的最前面内容或者最后面内容与拼接的内容进行组合,例如,组合的内容为:待上传文件的大小,内容1,内容2,内容3,内容4,内容5);对组合后的内容计算哈希值以作为提取内容的哈希值;
方式二:为每一个提取内容计算哈希值;将计算的哈希值及待上传文件的大小组成字符串{例如,组成的字符串为:(哈希值1,哈希值2,哈希值3,哈希值4,哈希值5,待上传文件的大小),或者,(待上传文件的大小,哈希值1,哈希值2,哈希值3,哈希值4,哈希值5),其中,哈希值1对应于内容1,哈希值2对应为内容2,……,哈希值5对应于内容5};对组成的字符串计算哈希值以作为提取内容的哈希值。
所述预设的规则可以为:将待上传文件的内容均分成二个以上等分(例如,均分成5个等分);于每个等分的内容的尾部提取特定大小的内容且所有提取内容的大小之和等于上述预设阀值(提取的内容大小,例如,第一个等分的内容的尾部提取的内容大小为A,第二个等分的内容的尾部提取的内容大小为B,第三个等分的内容的尾部提取的内容大小为C,第四个等分的内容的尾部提取的内容大小为D,第五个等分的内容的尾部提取的内容大小为E,上述预设阀值=A+B+C+D+E,A、B、C、D、E取值可以部分相等(例如“A=B”)、可以全部相等(例如,A=B=C=D=E)、可以全部不等)。
所述预设的规则还可以为:将待上传文件的内容均分成二个以上等分(例如,均分成5个等分);于最后一个等分的内容的尾部提取特定大小的内容,于其他等分的首部提取特定大小的内容,且所有提取内容的大小之和等于上述预设阀值(提取的内容大小,例如,第一个等分的内容的首部提取的内容大小为A,第二个等分的内容的首部提取的内容大小为B,第三个等分的内容的首部提取的内容大小为C,第四个等分的内容的首部提取的内容大小为D,第五个等分的内容的尾部提取的内容大小为E,上述预设阀值=A+B+C+D+E,A、B、C、D、E取值可以部分相等(例如“A=B”)、可以全部相等(例如,A=B=C=D=E)、可以全部不等)。
所述预设的规则还可以为其他任意适用的内容提取规则,以上给出的所述预设的规则的两个具体示例是非穷举行的,本领域的技术人员参照所述预设的规则的示例可以轻易想到其他任意适用的等同的内容提取规则。
哈希值分析模块111,用于将计算的哈希值与文件接收端(例如,服务器1,或者,服务器1与存储端4)已存储的文件的哈希值进行比对,根据哈希值比对结果分析是否有相同的文件存储在文件接收端。
文件上传模块112,用于在没有相同的文件存储在文件接收端时,发送待上传文件给文件接收端以进行存储。
实施例三:
该文件上传系统11的哈希值计算模块110运行于终端3中,该文件上传系统11的哈希值分析模块111及文件上传模块112运行于服务器1中。
哈希值计算模块110,用于监控并响应用户的待上传文件的上传指令,锁定用户的待上传文件,分析锁定的待上传文件的大小是否大于预设阀值,在锁定的待上传文件的大小大于预设阀值时,按照预设的规则从锁定的待上传文件中提取内容,并为提取的内容计算哈希值。
哈希值计算模块110,还用于在锁定的待上传文件的大小小于等于预设阀值时,为锁定的待上传文件全部内容计算哈希值。
在本实施例中,所述哈希值为MD5值及/或SHA1值,在本发明的其他实施例中,所述哈希值为其他任意适用类型的哈希验证值。
需要强调的是,哈希值计算模块110为提取的内容计算哈希值的方式有多种,以下示例性的以两个方式进行阐述(以5个提取内容为例):
方式一:将提取的内容进行前后拼接(例如,拼接的内容为:内容1,内容2,内容3,内容4,内容5);将拼接的内容与待上传文件的大小进行组合(例如,将待上传文件的大小作为拼接的内容的最前面内容或者最后面内容与拼接的内容进行组合,例如,组合的内容为:待上传文件的大小,内容1,内容2,内容3,内容4,内容5);对组合后的内容计算哈希值以作为提取内容的哈希值;
方式二:为每一个提取内容计算哈希值;将计算的哈希值及待上传文件的大小组成字符串{例如,组成的字符串为:(哈希值1,哈希值2,哈希值3,哈希值4,哈希值5,待上传文件的大小),或者,(待上传文件的大小,哈希值1,哈希值2,哈希值3,哈希值4,哈希值5),其中,哈希值1对应于内容1,哈希值2对应为内容2,……,哈希值5对应于内容5};对组成的字符串计算哈希值以作为提取内容的哈希值。
所述预设的规则可以为:将待上传文件的内容均分成二个以上等分(例如,均分成5个等分);于每个等分的内容的尾部提取内容且所有提取内容的大小之和等于上述预设阀值(提取的内容大小,例如,第一个等分的内容的尾部提取的内容大小为A,第二个等分的内容的尾部提取的内容大小为B,第三个等分的内容的尾部提取的内容大小为C,第四个等分的内容的尾部提取的内容大小为D,第五个等分的内容的尾部提取的内容大小为E,且上述预设阀值=A+B+C+D+E)。
所述预设的规则还可以为:将待上传文件的内容均分成二个以上等分(例如,均分成5个等分);于最后一个等分的内容的尾部提取内容,于其他等分的首部提取内容,且所有提取内容的大小之和等于上述预设阀值(提取的内容大小,例如,第一个等分的内容的首部提取的内容大小为A,第二个等分的内容的首部提取的内容大小为B,第三个等分的内容的首部提取的内容大小为C,第四个等分的内容的首部提取的内容大小为D,第五个等分的内容的尾部提取的内容大小为E,且上述预设阀值=A+B+C+D+E)。
所述预设的规则还可以为其他任意适用的内容提取规则,以上给出的所述预设的规则的两个具体示例是非穷举行的,本领域的技术人员参照所述预设的规则的示例可以轻易想到其他任意适用的等同的内容提取规则。
哈希值分析模块111,用于将计算的哈希值与文件接收端(例如,服务器1,或者,服务器1与存储端4)已存储的文件的哈希值进行比对,根据哈希值比对结果分析是否有相同的文件存储在文件接收端。
文件上传模块112,用于在没有相同的文件存储在文件接收端时,接收终端3的待上传文件并存储。
实施例四:
该文件上传系统11的哈希值计算模块110及文件上传模块112运行于终端3中,该文件上传系统11的哈希值分析模块111运行于服务器1中。
哈希值计算模块110,用于监控并响应用户的待上传文件的上传指令,锁定用户的待上传文件,分析锁定的待上传文件的大小是否大于预设阀值,在锁定的待上传文件的大小大于预设阀值时,按照预设的规则从锁定的待上传文件中提取内容,并为提取的内容计算哈希值。
哈希值计算模块110,还用于在锁定的待上传文件的大小小于等于预设阀值时,为锁定的待上传文件全部内容计算哈希值。
在本实施例中,所述哈希值为MD5值及/或SHA1值,在本发明的其他实施例中,所述哈希值为其他任意适用类型的哈希验证值。
需要强调的是,哈希值计算模块110为提取的内容计算哈希值的方式有多种,以下示例性的以两个方式进行阐述(以5个提取内容为例):
方式一:将提取的内容进行前后拼接(例如,拼接的内容为:内容1,内容2,内容3,内容4,内容5);将拼接的内容与待上传文件的大小进行组合(例如,将待上传文件的大小作为拼接的内容的最前面内容或者最后面内容与拼接的内容进行组合,例如,组合的内容为:待上传文件的大小,内容1,内容2,内容3,内容4,内容5);对组合后的内容计算哈希值以作为提取内容的哈希值;
方式二:为每一个提取内容计算哈希值;将计算的哈希值及待上传文件的大小组成字符串{例如,组成的字符串为:(哈希值1,哈希值2,哈希值3,哈希值4,哈希值5,待上传文件的大小),或者,(待上传文件的大小,哈希值1,哈希值2,哈希值3,哈希值4,哈希值5),其中,哈希值1对应于内容1,哈希值2对应为内容2,……,哈希值5对应于内容5};对组成的字符串计算哈希值以作为提取内容的哈希值。
所述预设的规则可以为:将待上传文件的内容均分成二个以上等分(例如,均分成5个等分);于每个等分的内容的尾部提取内容且所有提取内容的大小之和等于上述预设阀值(提取的内容大小,例如,第一个等分的内容的尾部提取的内容大小为A,第二个等分的内容的尾部提取的内容大小为B,第三个等分的内容的尾部提取的内容大小为C,第四个等分的内容的尾部提取的内容大小为D,第五个等分的内容的尾部提取的内容大小为E,且上述预设阀值=A+B+C+D+E)。
所述预设的规则还可以为:将待上传文件的内容均分成二个以上等分(例如,均分成5个等分);于最后一个等分的内容的尾部提取内容,于其他等分的首部提取内容,且所有提取内容的大小之和等于上述预设阀值(提取的内容大小,例如,第一个等分的内容的首部提取的内容大小为A,第二个等分的内容的首部提取的内容大小为B,第三个等分的内容的首部提取的内容大小为C,第四个等分的内容的首部提取的内容大小为D,第五个等分的内容的尾部提取的内容大小为E,且上述预设阀值=A+B+C+D+E)。
所述预设的规则还可以为其他任意适用的内容提取规则,以上给出的所述预设的规则的两个具体示例是非穷举行的,本领域的技术人员参照所述预设的规则的示例可以轻易想到其他任意适用的等同的内容提取规则。
哈希值分析模块111,用于将计算的哈希值与文件接收端(例如,服务器1,或者,服务器1与存储端4)已存储的文件的哈希值进行比对,根据哈希值比对结果分析是否有相同的文件存储在文件接收端。
文件上传模块112,用于在没有相同的文件存储在文件接收端时,发送待上传文件给文件接收端以进行存储。
如图3所示,为本发明文件上传方法较佳实施例的具体实施流程图。
需要强调的是:图3所示流程图仅为一个较佳实施例,本领域的技术人员当知,任何围绕本发明思想构建的实施例都不应脱离于如下技术方案涵盖的范围:
监控并响应待上传文件的上传指令,锁定待上传文件;分析锁定的待上传文件的大小是否大于预设阀值;在锁定的待上传文件的大小大于预设阀值时,按照预设的规则从锁定的待上传文件中提取内容,并为提取的内容计算哈希值,或者,在锁定的待上传文件的大小小于等于预设阀值时,为锁定的待上传文件全部内容计算哈希值;将计算的哈希值与文件接收端已存储的文件的哈希值进行比对;根据哈希值比对结果分析是否有相同的文件存储在文件接收端;在没有相同的文件存储在文件接收端时,将待上传文件存储至文件接收端。
以下是结合本实施例逐步实现文件的上传。
步骤S10,哈希值计算模块110监控并响应待上传文件的上传指令,锁定待上传文件。
步骤S11,哈希值计算模块110分析锁定的待上传文件的大小是否大于预设阀值。
在锁定的待上传文件的大小大于预设阀值时,转入执行下述步骤S13,或者,在锁定的待上传文件的大小小于等于预设阀值时,转入执行下述步骤S12。
步骤S13,哈希值计算模块110按照预设的规则从锁定的待上传文件中提取内容,并为提取的内容计算哈希值。
步骤S12,哈希值计算模块110为锁定的待上传文件全部内容计算哈希值。
在本实施例中,所述哈希值为MD5值及/或SHA1值,在本发明的其他实施例中,所述哈希值为其他任意适用类型的哈希验证值。
需要强调的是,哈希值计算模块110为提取的内容计算哈希值的方式有多种,以下示例性的以两个方式进行阐述(以5个提取内容为例):
方式一:将提取的内容进行前后拼接(例如,拼接的内容为:内容1,内容2,内容3,内容4,内容5);将拼接的内容与待上传文件的大小进行组合(例如,将待上传文件的大小作为拼接的内容的最前面内容或者最后面内容与拼接的内容进行组合,例如,组合的内容为:待上传文件的大小,内容1,内容2,内容3,内容4,内容5);对组合后的内容计算哈希值以作为提取内容的哈希值;
方式二:为每一个提取内容计算哈希值;将计算的哈希值及待上传文件的大小组成字符串{例如,组成的字符串为:(哈希值1,哈希值2,哈希值3,哈希值4,哈希值5,待上传文件的大小),或者,(待上传文件的大小,哈希值1,哈希值2,哈希值3,哈希值4,哈希值5),其中,哈希值1对应于内容1,哈希值2对应为内容2,……,哈希值5对应于内容5};对组成的字符串计算哈希值以作为提取内容的哈希值。
所述预设的规则可以为:将待上传文件的内容均分成二个以上等分(例如,均分成5个等分);于每个等分的内容的尾部提取内容且所有提取内容的大小之和等于上述预设阀值(提取的内容大小,例如,第一个等分的内容的尾部提取的内容大小为A,第二个等分的内容的尾部提取的内容大小为B,第三个等分的内容的尾部提取的内容大小为C,第四个等分的内容的尾部提取的内容大小为D,第五个等分的内容的尾部提取的内容大小为E,且上述预设阀值=A+B+C+D+E)。
所述预设的规则还可以为:将待上传文件的内容均分成二个以上等分(例如,均分成5个等分);于最后一个等分的内容的尾部提取内容,于其他等分的首部提取内容,且所有提取内容的大小之和等于上述预设阀值(提取的内容大小,例如,第一个等分的内容的首部提取的内容大小为A,第二个等分的内容的首部提取的内容大小为B,第三个等分的内容的首部提取的内容大小为C,第四个等分的内容的首部提取的内容大小为D,第五个等分的内容的尾部提取的内容大小为E,且上述预设阀值=A+B+C+D+E)。
所述预设的规则还可以为其他任意适用的内容提取规则,以上给出的所述预设的规则的两个具体示例是非穷举行的,本领域的技术人员参照所述预设的规则的示例可以轻易想到其他任意适用的等同的内容提取规则。
步骤S15,哈希值分析模块111将计算的哈希值与文件接收端(例如,服务器1,或者,服务器1与存储端4)已存储的文件的哈希值进行比对。
步骤S16,哈希值分析模块111根据哈希值比对结果分析是否有相同的文件存储在文件接收端。
在没有相同的文件存储在文件接收端时,转入执行下述步骤S17,或者,在有相同的文件存储在文件接收端时,流程结束。
步骤S17,文件上传模块112将待上传文件存储至文件接收端。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。