CN114567506B - 文件上传的方法、装置、计算机设备及存储介质 - Google Patents
文件上传的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114567506B CN114567506B CN202210230445.3A CN202210230445A CN114567506B CN 114567506 B CN114567506 B CN 114567506B CN 202210230445 A CN202210230445 A CN 202210230445A CN 114567506 B CN114567506 B CN 114567506B
- Authority
- CN
- China
- Prior art keywords
- file
- target
- fragmented
- server
- target file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012790 confirmation Methods 0.000 claims abstract description 45
- 238000010586 diagram Methods 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 15
- 239000012634 fragment Substances 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 238000000638 solvent extraction Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种文件上传的方法、装置、计算机设备及存储介质,方法包括:获取目标文件的目标识别字符,目标识别字符为目标文件的文件头内的字符,根据目标识别字符在关系集中查找是否存在相同的识别字符,若存在,则获取目标文件的第一标识,将第一标识发送给服务器,在获取到不存在第一标识的第一确认结果时,则对目标文件进行分割,获得若干分片文件,通过多线程并发的方式获取若干分片文件中每个分片文件对应的第二标识,将分片文件的第二标识发送给服务器,在获取到不存在第二标识的第二确认结果时,则将分片文件发送给服务器。通过本申请,可以提高文件上传的安全性,并提高文件上传的效率。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种文件上传的方法、装置、计算机设备及存储介质。
背景技术
随着科技的发展,网络技术已经渗透入人们生活和工作中的方方面面,人们在上网的过程中,经常会遇到需要将文件上传的情况,文件上传是指将文件从一个终端传输至另一个终端或服务器端的过程。
现有技术中,客户端设备直接将文件上传至服务器,当文件为恶意文件时,降低了服务器端的安全性,使服务器容易受到网络攻击,此外,文件被客户端设备作为一整个数据包进行上传,服务器接收连接请求后,根据该连接请求与客户端设备建立连接,客户端设备通过建立的连接向服务器发送请求数据包,请求数据包的数据量越大,上传的速度越缓慢,特别在网络不稳定时,容易导致上传一半即断开,需要重复操作,上传的效率低。
发明内容
本申请实施例所要解决的技术问题在于,提供一种文件上传的方法、装置、计算机设备及存储介质,可以提高上传的安全性以及提高文件长传的效率。
本申请实施例第一方面提供一种文件上传的方法,包括:
获取目标文件的目标识别字符,所述目标识别字符为所述目标文件的文件头内的字符;
根据所述目标识别字符在关系集中查找是否存在相同的识别字符,所述关系集包括多个设定的识别字符;
当所述数据集中存在与所述目标识别字符相同的识别字符时,则获取所述目标文件的第一标识;
将所述第一标识发送给服务器,并获取确定是否存在所述第一标识的第一确认结果;
当所述第一确认结果为不存在时,则对所述目标文件进行分割,获得若干分片文件;
通过多线程并发的方式获取所述若干分片文件中每个分片文件对应的第二标识;
将所述第二标识发送给所述服务器,并获取确定是否存在所述第二标识的第二确认结果;
当所述第二确认结果为不存在时,则将所述分片文件发送给所述服务器。
本申请实施例第二方面提供一种文件上传的装置,包括:
第一获取单元,用于获取目标文件的目标识别字符,所述目标识别字符为所述目标文件的文件头内的字符;
查找单元,根据所述目标识别字符在关系集中查找是否存在相同的识别字符,所述关系集包括多个设定的识别字符;
第二获取单元,用于当所述数据集中存在与所述目标识别字符相同的识别字符时,则获取所述目标文件的第一标识;
第一收发单元,用于将所述第一标识发送给服务器,并获取确定是否存在所述第一标识的第一确认结果;
分割单元,用于当所述第一确认结果为不存在时,则对所述目标文件进行分割,获得若干分片文件;
第三获取单元,用于通过多线程并发的方式获取所述若干分片文件中每个分片文件对应的第二标识;
第二收发单元,用于将所述第二标识发送给所述服务器,并获取确定是否存在所述第二标识的第二确认结果;
第一发送单元,用于当所述第二确认结果为不存在时,则将所述分片文件发送给所述服务器。
本申请实施例第三方面提供提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例第四方面提供提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例第五方面提供提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例中,通过获取目标文件的目标识别字符,该目标识别字符为该目标文件的文件头内的字符,根据该目标识别字符在关系集中查找是否存在相同的识别字符,该关系集包括多个设定的识别字符,若关系集中存在与该目标识别字符相同的识别字符,则获取该目标文件的第一标识,将该第一标识发送给服务器,并获取服务器发送的确定是否存在第一标识的第一确认结果,当该第一确认结果为不存在时,则对该目标文件进行分割,获得若干分片文件,通过多线程并发的方式获取该若干分片文件中每个分片文件对应的第二标识,将该分片文件的第二标识发送给该服务器,并获取确定是否存在第二标识的第二确认结果,当该第二确认结果为不存在时,则将该分片文件发送给该服务器。在目标文件上传前获取目标文件文件头内的目标识别字符,根据目标识别字符识别目标文件是否为待上传的文件类型,从而避免目标文件为伪造的文件,进而提高上传的目标文件的安全性。在确定目标文件可以上传后,首先确定服务器端是否已经接收过该目标文件,若没有,则将目标文件分割为分片文件,通过多线程并发的方式处理该分片文件并发送给服务器,将目标文件分割为分片文件发送,提高传输的效率,特别是在发生网络中断事件后,无需重新传输已经传输过的文件,避免重复传输,进一步提高目标文件的传输效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种文件上传系统的架构示意图;
图2是本申请实施例提供的一种文件上传的方法的流程示意图;
图3是本申请实施例提供的根据文件上传的方法上传目标文件时的进度示意图;
图4是本申请实施例提供的一种文件上传的装置的功能单元组成框图;
图5是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面结合附图对本申请实施例进行说明。
请参阅图1,图1是本申请实施例提供的一种文件上传系统的架构示意图。如图1所示,该文件上传系统可以包括服务器10和客户端设备集群。该客户端设备集群可以包括一个或者多个客户端设备,这里将不对客户端设备的数量进行限制。如图1所示,具体可以包括客户端设备100a、客户端设备100b、客户端设备100c、…、客户端设备100n。如图1所示,客户端设备100a、客户端设备100b、客户端设备100c、…、客户端设备100n可以分别与上述服务器10进行网络连接,以便于每个客户端设备可以通过该网络连接与服务器10进行数据交互。
其中,该客户端设备集群中的每个客户端设备均可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、可穿戴设备、智能家居、头戴设备、车载终端等具有体检推荐功能的智能终端。应当理解,如图1所示的客户端设备集群中的每个客户端设备均可以安装有目标应用(即应用客户端),当该应用客户端运行于各客户端设备中时,可以分别与上述图1所示的服务器10之间进行数据交互。
其中,如图1所示,该服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
为便于理解,本申请实施例可以在图1所示的多个客户端设备中选择一个客户端设备作为目标客户端设备,该目标客户端设备可以包括:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等携带体检推荐功能的智能终端。
请参阅图2,图2是本申请实施例提供的一种文件上传的方法的流程示意图。文件上传的方法可由客户端设备执行,该客户端设备可以为服务器(如上述图1中的服务器10),或者客户端设备(如上述图1的客户端设备集群中的任一客户端设备),或者为服务器和客户端设备组成的系统,本申请对此不做限定。本申请实施例中,目标文件以图片文件为例进行说明,可以理解的是,本申请中的目标文件可以为不同类型的文件,例如文本文件,视频文件等,具体此处并不作限定。其中,文件上传的方法可以包括步骤210-步骤280。
步骤210,获取目标文件的目标识别字符,所述目标识别字符为所述目标文件的文件头内的字符。
具体的,由于扩展名容易被伪造,恶意文件通过修改扩展名即可通过安全检测,从而上传至后端,造成安全隐患。本申请实施例中客户端设备获取目标文件后,通过获取目标文件的目标识别字符来识别目标文件,该目标识别字符为目标文件的文件头内的字符,而文件头是位于目标文件中的一段数据,是目标文件的一部分。不同类型文件具有不同的文件头,不易被伪造。通过获取目标文件的文件头的目标识别字符来确定目标文件的类型,避免恶意文件修改扩展名伪装。本申请实施例中的目标识别字符指目标文件的文件头内前几位特殊的字符,可以根据实际需求设定目标识别字符的位数。例如,当目标文件为便携式网络图形(Portable Network Graphics,PNG)时,其扩展名为“.png”。恶意文件修改扩展名即可伪造成PNG文件,故通过检测扩展名来检测是否为PNG文件,安全性低。而PNG文件的文件头的十六进制字符串的前八位是89、50、4E、47、0D、0A、1A与0A,设定目标识别字符为文件头内前八位字符,在检测时,读取该目标文件的文件头内的前八位作为目标识别字符,即目标识别字符为89、50、4E、47、0D、0A、1A与0A,不易被伪造。
可见,由于目标文件的目标识别字符为文件头内的字符,不易被伪造,通过目标文件的目标识别字符来判断目标文件的文件类型,提高判断结果的准确性,使判断结果可信度更高。
步骤220,根据所述目标识别字符在关系集中查找是否存在相同的识别字符,所述关系集包括多个设定的识别字符。
具体的,关系集内包括设定的识别字符,用于限定上传文件的文件类型,当关系集中不存在该目标识别字符相同的识别字符时,则该目标识别字符对应的目标文件无法上传。例如关系集中包括识别字符:89、50、4E、47、0D、0A、1A与0A,获取到目标文件的目标识别字符:47、49、46、38、39、61、3C与01,根据目标识别字符在关系集中查找是否存在相同的识别字符,未查找到为47、49、46、38、39、61、3C与01的识别字符,则表示不支持上传目标识别字符为47、49、46、38、39、61、3C与01的目标文件,禁止该目标文件上传,并向客户端设备发送恶意文件提示消息。
在其他实施例中,关系集中还可记录中每个识别字符对应的文件类型。例如:识别字符1为:89、50、4E、47、0D、0A、1A与0A,其对应的文件类型为PNG文件,识别字符2为:47、49、46、38、39、61、3C与01,其对应的文件类型为GIF文件。通过获取目标文件的扩展名,判断目标文件的文件类型,并获取该目标文件的目标识别字符,根据该目标识别字符在数据集中查找到相同的识别字符后,获取数据集中该识别字符对应的文件类型,比较根据目标识别字符获取的文件类型与目标文件扩展名对应的文件类型是否相同,若不同,判断该目标文件存在问题,拒绝向服务器上传该目标文件,并向客户端设备发送错误文件提示消息。例如,目标文件的扩展名为“.png”,根据扩展名判断该目标文件为PNG文件,获取到该目标文件的目标识别字符为47、49、46、38、39、61、3C与01,根据目标识别字符查找到文件类型为GIF文件,根据扩展名判断的文件类型与根据目标识别字符获取的文件类型不同,则判断该目标文件存在错误,向用户发出错误文件提示消息,进一步保证上传的安全性。
步骤230,当所述数据集中存在与所述目标识别字符相同的识别字符时,则获取所述目标文件的第一标识。
具体的,所述则获取所述目标文件的第一标识包括:通过消息摘要算法MD5对所述目标文件进行计算,获得所述目标文件的第一标识。
当判断关系集中存在与该目标文件相同的识别字符后,则判断该目标文件为安全文件。通过消息摘要算法(Message-Digest Algorithm,MD5)对该目标文件进行计算,获得该目标文件的第一标识。消息摘要算法是一种被广泛使用的密码散列函数,将数据(如一段文字)运算变为另一固定长度值,是散列算法的基础原理,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致,是一种被广泛使用的密码散列函数。
通过消息摘要算法计算目标文件的第一标识,使获得的第一标识具有唯一性,为后续秒传和断点续传提供唯一标识。
步骤240,将所述第一标识发送给服务器,并获取确定是否存在所述第一标识的第一确认结果。
客户端设备将第一标识上传给服务器,服务器在获取到第一标识后,确认服务器内是否存在第一标识,若存在,则表示在此次上传之前,服务器已经接收过该目标文件,并保存了目标文件,服务器向客户端设备发送第一确认结果,用于提示客户端设备无需再次发送目标文件,服务器可以直接从预先设置的存储位置获取该目标文件,提高效率,实现秒传。若不存在,则表示在此次上传之前,服务器没有接收过或者没有完整的接收过目标文件,服务器向客户端设备发送第一确认结果,该第一确认结果用于提示客户端设备上传该目标文件。
可见,通过确认服务器是否存在第一标识,从而确定服务器是否接收过该目标文件,若接收过,则直接从预先设置的存储地址获取该目标文件,无需客户端设备再次上传该目标文件,达到秒传的目的,进而提高效率,节约网络资源。
步骤250,当所述第一确认结果为不存在时,则对所述目标文件进行分割,获得若干分片文件。
当客户端设备接收到的第一确认结果为服务器不存在一标识时,则证明服务器没有目标文件,需要前端向服务器上传目标文件。客户端设备将该目标文件进行分割,获得若干分片文件,将分片文件上传给服务器,客户端设备将一个大文件的传输分为若干小文件的传输,提高传输的效率。
其中,所述对所述目标文件进行分割,获得若干分片文件包括:获取所述目标文件的大小;判断所述大小是否超过预设大小;若是,则根据预设的所述分片文件的大小将所述目标文件进行分割,获得若干分片文件。
分割时,首先获取目标文件的大小,判断该目标文件的大小是否超过预设的大小,若目标文件的大小超过预设的大小,则按照预设的分片文件的大小对目标文件进行分割,例如,预设的大小为150M,预设的分片文件的大小为2M,目标文件为视频文件,有200M,该视频文件超过预设的大小,则将该视频文件分割,获得若干大小为2M的分片文件。
在其他实施例中,当目标文件非常大时,比如超过10G,为了避免分割成的分片文件太多,通常可以选择一个固定的分片数量,而文件的大小就不固定,即按照分片数目对目标文件传文件进行分割,获得一定数目的分片文件。
步骤260,通过多线程并发的方式获取所述若干分片文件中每个分片文件对应的第二标识。
其中,所述通过多线程并发的方式获取所述若干分片文件中每个分片文件对应的第二标识包括:创建所述若干分片文件中每个分片文件对应的计算任务;将所述计算任务提交至设有线程数量阈值的线程池的任务队列,所述线程池包括多个线程,所述线程用于执行所述计算任务,所述线程数量阈值为预设的值;根据所述线程数量阈值确定同一时间段内并发的线程数量N,所述N为正整数;N个所述线程并发执行所述计算任务,获得所述第二标识。
具体的,由于主线程一次只能做一件事,前面的任务没做完,后面的任务只能等待,由于分割获得的分片文件有若干个,客户端设备需要使用md5的计算方式对每一个分片文件进行计算,获得每张分片文件对应的第二标识,分片文件的数量太多,影响上传效率。为提高上传的效率,通过多线程Web Workers的方式,开启独立于主线程的后台线程,从而实现同时计算多个分片文件的第二标识,减少计算的时间,提高上传的效率。Web Workers可以使Web应用程序在与主执行线程分离的后台线程中运行一个脚本操作,实现在单独的线程中执行费时的处理任务,从而使主线程运行而不被阻塞。故使用md5的计算方式对分片文件进行计算的过程可以在子线程中进行,在主线程运行的同时,子线程在后台运行,两者互不干扰。等到子线程完成计算任务,再把结果返回给主线程。
在一些可能的示例中,为防止一次性上传数量过多,增加了对并发线程的控制,即设置线程数量阈值,该线程数量阈值可以根据实际需求进行设置,例如,将线程数量阈值设置在3到6个,即在同一时刻仅允许3到6个线程同时运行。当其中一个线程完成计算与上传后,才允许再添加一个进来。通过设置线程数量阈值将线程数量控制在一定范围内,以减少客户端设备的开销。
步骤270,将所述第二标识发送给所述服务器,并获取确定是否存在所述第二标识的第二确认结果。
其中,为避免服务器已有该分片文件的情况下再次向服务器传输该分片文件,将该分片文件的第二标识发送给服务器。服务器在获取到第二标识后,确认服务器内是否存在第二标识,若存在,则表示在此次上传之前,服务器已经接收过该分片文件,并保存了分片文件,则无需再次上传该分片文件,且避免断网再联网等事件发送时,再重复上传已经上传过的分片文件件,提高目标文件上传的效率。若不存在,则表示在此次上传之前,服务器没有接收过该分片文件。
步骤280,当所述第二确认结果为不存在时,则将所述分片文件发送给所述服务器。
其中,当客户端设备接收到服务器返回的第二确认结果,并解析第二确认结果,发现服务器不存在第二标识时,则需要向服务器发送该第二标识对应的分片文件。
所述将所述分片文件发送给所述服务器包括:获取进度示意图;获取所述若干分片文件中所述分片文件的分片数量M,所述M为正整数;根据所述M将所述进度示意图分割为M张切片进度示意图;向所述服务器发送所述分片文件;获取所述分片文件发送进度百分比;根据所述百分比改变设定颜色占所述M张切片进度示意图中任意一张切片进度示意图的比例。
具体的,请参阅图3,图3是本申请实施例提供的根据文件上传的方法上传目标文件时的进度示意图。为直观的呈现目标文件上传的进度,以及监控上传成功或者失败的进度,可以获取进度示意图,并统计若干分片文件的数量M,将进度示意图分割为M张切片进度示意图,在分片文件上传过程中,每上传一张分片文件,就有一张切片进度示意图根据该分片文件上传的进度百分比改变设定颜色占该切片进度示意图的比例。例如,设定颜色为绿色,当第一分片文件的上传的进度为百分之三十,第二分片文件上传的进度为百分之二十时,则绿色占第一切片进度示意图百分之三十的面积,绿色占第二切片进度示意图百分之二十的面积,当第一分片文件上传成功,则绿色占该第一切片进度示意图的百分之百,同理,当第二分片文件上传成功,则绿色占该第二切片进度示意图的百分之百。其中,第一分片文件与第二分片文件为若干分片文件中的分片文件,第一分片文件与第二分片文件不同,第一切片进度示意图与第二切片进度示意图为M张切片进度示意图中的切片进度示意图,第一切片进度示意图与第二切片进度示意图不同。可选的,设置上传进度小于0为报错,设定切片进度示意图显示另外一种颜色,例如设定上传进度小于0时切片进度示意图显示红色。
可见,通过切片进度示意图中设定颜色的占比来展示分片文件上传的进度,可以直观的展示分片文件上传的进度,提高客户体验。
可选的,所述将所述分片文件发送给服务器之后,还包括:当所述分片文件发送失败时,为所述分片文件打上失败标记,并生成重传指示;根据所述重传指示查找带有所述失败标记的分片文件;将带有所述失败标记的分片文件发送给服务器。
其中,发现分片文件上传失败时,则为上传失败的分片文件打上失败标记,例如,第一分片文件上传失败,则为第一分片文件打上失败标记,并生成重传指令,该重传指令中包含第一分片文件对应的失败标记,在客户端设备获取到重传指令后,解析该重传指令并获取到失败标记,则查找带有该失败标记的第一分片文件,重新上传第一分片文件,其中,第一分片文件为若干分片文件的任意一张分片文件。为发送失败的分片文件打上失败标记,以便于后续根据重传指示进行重新上传带失败标记的分片文件,为防止上传遗漏。
在一些可能的示例中,所述将带有所述失败标记的分片文件发送给服务器之后,还包括:统计带有所述失败标记的分片文件的重新发送次数;判断所述重新发送次数是否超过预设次数;若是,则停止发送所述目标文件。
具体的,当分片文件上传出现多次错误时,为减少网络资源的浪费,设定了预设次数,用于限制重新上传的次数,预设次数可以根据实际需求设置,例如可以3次,3次重新上传依旧失败,则停止上传该目标文件,并通过客户端设备改变进度示意图的颜色,提醒用户上传出现错误。
请参见图4,图4是本申请实施例提供的一种文件上传的装置的功能单元组成框图。如图4所示,该文件上传的装置包括:
第一获取单元410,用于获取目标文件的目标识别字符,所述目标识别字符为所述目标文件的文件头内的字符;
查找单元420,用于根据所述目标识别字符在关系集中查找是否存在相同的识别字符,所述关系集包括多个设定的识别字符;
第二获取单元430,用于当所述数据集中存在与所述目标识别字符相同的识别字符时,则获取所述目标文件的第一标识;
第一收发单元440,用于将所述第一标识发送给服务器,并获取确定是否存在所述第一标识的第一确认结果;
分割单元450,用于当所述第一确认结果为不存在时,则对所述目标文件进行分割,获得若干分片文件;
第三获取单元460,用于通过多线程并发的方式获取所述若干分片文件中每个分片文件对应的第二标识;
第二收发单元470,用于将所述第二标识发送给所述服务器,并获取确定是否存在所述第二标识的第二确认结果;
第一发送单元480,用于当所述第二确认结果为不存在时,则将所述分片文件发送给所述服务器。
其中,所述第二获取单元430,还用于:
通过消息摘要算法MD5对所述目标文件进行计算,获得所述目标文件的第一标识。
其中,所述第三获取单元460,还用于:
创建所述若干分片文件中每个分片文件对应的计算任务;
将所述计算任务提交至设有线程数量阈值的线程池的任务队列,所述线程池包括多个线程,所述线程用于执行所述计算任务,所述线程数量阈值为预设的值;
根据所述线程数量阈值确定同一时间段内并发的线程数量N,所述N为正整数;
N个所述线程并发执行所述计算任务,获得所述第二标识。
其中,所述装置还包括:
生成单元,用于当所述分片文件发送失败时,为所述分片文件打上失败标记,并生成重传指示;
查找单元,用于根据所述重传指示查找带有所述失败标记的分片文件;
第二发送单元,用于将带有所述失败标记的分片文件发送给服务器。
其中,所述装置还包括:
统计单元,用于统计带有所述失败标记的分片文件的重新发送次数;
判断单元,用于判断所述重新发送次数是否超过预设次数;
处理单元,用于停止发送所述目标文件。
其中,所述第一发送单元480,还用于:
获取进度示意图;
获取所述若干分片文件中所述分片文件的分片数量M,所述M为正整数;
根据所述M将所述进度示意图分割为M张切片进度示意图;
向所述服务器发送所述分片文件;
获取所述分片文件发送进度百分比;
根据所述百分比改变设定颜色占所述M张切片进度示意图中任意一张切片进度示意图的比例。
其中,所述分割单元450,还用于:
获取所述目标文件的大小;
判断所述大小是否超过预设大小;
若是,则根据预设的所述分片文件的大小将所述目标文件进行分割,获得若干分片文件。
请参见图5,图5是本申请实施例提供的一种计算机设备的结构示意图。如图5所示,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图5所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图5所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为目标用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取目标文件的目标识别字符,所述目标识别字符为所述目标文件的文件头内的字符;
根据所述目标识别字符在关系集中查找是否存在相同的识别字符,所述关系集包括多个设定的识别字符;
当所述数据集中存在与所述目标识别字符相同的识别字符时,则获取所述目标文件的第一标识;
将所述第一标识发送给服务器,并获取确定是否存在所述第一标识的第一确认结果;
当所述第一确认结果为不存在时,则对所述目标文件进行分割,获得若干分片文件;
通过多线程并发的方式获取所述若干分片文件中每个分片文件对应的第二标识;
将所述第二标识发送给所述服务器,并获取确定是否存在所述第二标识的第二确认结果;
当所述第二确认结果为不存在时,则将所述分片文件发送给所述服务器。
其中,所述则获取所述目标文件的第一标识包括:
通过消息摘要算法MD5对所述目标文件进行计算,获得所述目标文件的第一标识。
其中,所述通过多线程并发的方式获取所述若干分片文件中每个分片文件对应的第二标识包括:
创建所述若干分片文件中每个分片文件对应的计算任务;
将所述计算任务提交至设有线程数量阈值的线程池的任务队列,所述线程池包括多个线程,所述线程用于执行所述计算任务,所述线程数量阈值为预设的值;
根据所述线程数量阈值确定同一时间段内并发的线程数量N,所述N为正整数;
N个所述线程并发执行所述计算任务,获得所述第二标识。
其中,所述将所述分片文件发送给服务器之后,所述方法还包括:
当所述分片文件发送失败时,为所述分片文件打上失败标记,并生成重传指示;
根据所述重传指示查找带有所述失败标记的分片文件;
将带有所述失败标记的分片文件发送给服务器。
其中,所述将带有所述失败标记的分片文件发送给服务器之后,所述方法还包括:
统计带有所述失败标记的分片文件的重新发送次数;
判断所述重新发送次数是否超过预设次数;
若是,则停止发送所述目标文件。
其中,所述将所述分片文件发送给所述服务器包括:
获取进度示意图;
获取所述若干分片文件中所述分片文件的分片数量M,所述M为正整数;
根据所述M将所述进度示意图分割为M张切片进度示意图;
向所述服务器发送所述分片文件;
获取所述分片文件发送进度百分比;
根据所述百分比改变设定颜色占所述M张切片进度示意图中任意一张切片进度示意图的比例。
其中,所述对所述目标文件进行分割,获得若干分片文件包括:
获取所述目标文件的大小;
判断所述大小是否超过预设大小;
若是,则根据预设的所述分片文件的大小将所述目标文件进行分割,获得若干分片文件。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图2所对应实施例中对体检推荐方法的描述,也可执行前文图4所对应实施例中对体检推荐装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的体检推荐装置所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图2所对应实施例中对体检推荐方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图2所对应实施例中对体检推荐方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (8)
1.一种文件上传的方法,其特征在于,应用于客户端设备,所述方法包括:
获取目标文件的目标识别字符,所述目标识别字符为所述目标文件的文件头内的字符;
根据所述目标识别字符在关系集中查找是否存在相同的识别字符,所述关系集包括多个设定的识别字符;
当所述关系集中存在与所述目标识别字符相同的识别字符时,则获取所述目标文件的第一标识;
将所述第一标识发送给服务器,并获取确定是否存在所述第一标识的第一确认结果;
当所述第一确认结果为不存在时,则对所述目标文件进行分割,获得若干分片文件;
通过多线程并发的方式获取所述若干分片文件中每个分片文件对应的第二标识;包括:
创建所述若干分片文件中每个分片文件对应的计算任务;将所述计算任务提交至设有线程数量阈值的线程池的任务队列,所述线程池包括多个线程,所述线程用于执行所述计算任务,所述线程数量阈值为预设的值;根据所述线程数量阈值确定同一时间段内并发的线程数量N,所述N为正整数;N个所述线程并发执行所述计算任务,获得所述第二标识;
将所述第二标识发送给所述服务器,并获取确定是否存在所述第二标识的第二确认结果;
当所述第二确认结果为不存在时,则将所述分片文件发送给所述服务器,包括:获取进度示意图;获取所述若干分片文件中所述分片文件的分片数量M,所述M为正整数;根据所述M将所述进度示意图分割为M张切片进度示意图;向所述服务器发送所述分片文件;获取所述分片文件发送进度百分比;根据所述百分比改变设定颜色占所述M张切片进度示意图中任意一张切片进度示意图的比例。
2.根据权利要求1所述的方法,其特征在于,所述则获取所述目标文件的第一标识包括:
通过消息摘要算法MD5对所述目标文件进行计算,获得所述目标文件的第一标识。
3.根据权利要求1所述的方法,其特征在于,所述将所述分片文件发送给服务器之后,所述方法还包括:
当所述分片文件发送失败时,为所述分片文件打上失败标记,并生成重传指示;
根据所述重传指示查找带有所述失败标记的分片文件;
将带有所述失败标记的分片文件发送给服务器。
4.根据权利要求3所述的方法,其特征在于,所述将带有所述失败标记的分片文件发送给服务器之后,所述方法还包括:
统计带有所述失败标记的分片文件的重新发送次数;
判断所述重新发送次数是否超过预设次数;
若是,则停止发送所述目标文件。
5.根据权利要求1所述的方法,其特征在于,所述对所述目标文件进行分割,获得若干分片文件包括:
获取所述目标文件的大小;
判断所述大小是否超过预设大小;
若是,则根据预设的所述分片文件的大小将所述目标文件进行分割,获得若干分片文件。
6.一种文件上传的装置,其特征在于,所述装置用于执行权利要求1-5任一项所述的方法,所述装置包括:
第一获取单元,用于获取目标文件的目标识别字符,所述目标识别字符为所述目标文件的文件头内的字符;
查找单元,用于根据所述目标识别字符在关系集中查找是否存在相同的识别字符,所述关系集包括多个设定的识别字符;
第二获取单元,用于当所述关系集中存在与所述目标识别字符相同的识别字符时,则获取所述目标文件的第一标识;
第一收发单元,用于将所述第一标识发送给服务器,并获取确定是否存在所述第一标识的第一确认结果;
分割单元,用于当所述第一确认结果为不存在时,则对所述目标文件进行分割,获得若干分片文件;
第三获取单元,用于通过多线程并发的方式获取所述若干分片文件中每个分片文件对应的第二标识;
第二收发单元,用于将所述第二标识发送给所述服务器,并获取确定是否存在所述第二标识的第二确认结果;
第一发送单元,用于当所述第二确认结果为不存在时,则将所述分片文件发送给所述服务器。
7.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-5任一项所述的方法中的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-5任一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210230445.3A CN114567506B (zh) | 2022-03-09 | 2022-03-09 | 文件上传的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210230445.3A CN114567506B (zh) | 2022-03-09 | 2022-03-09 | 文件上传的方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114567506A CN114567506A (zh) | 2022-05-31 |
CN114567506B true CN114567506B (zh) | 2024-03-19 |
Family
ID=81717490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210230445.3A Active CN114567506B (zh) | 2022-03-09 | 2022-03-09 | 文件上传的方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114567506B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115085869A (zh) * | 2022-06-30 | 2022-09-20 | 咪咕动漫有限公司 | 数据传输方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105635324A (zh) * | 2016-03-17 | 2016-06-01 | 新浪网技术(中国)有限公司 | 用于浏览器或服务器的大文件上传、续传方法和装置 |
CN106375483A (zh) * | 2016-11-09 | 2017-02-01 | 腾讯科技(深圳)有限公司 | 文件传输方法和装置 |
CN107172131A (zh) * | 2017-04-26 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
CN110096889A (zh) * | 2019-04-18 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 文件检测方法、装置、设备及计算机可读存储介质 |
CN110392083A (zh) * | 2018-04-20 | 2019-10-29 | 华为技术有限公司 | 文件秒传的控制方法、装置及终端设备 |
WO2019222934A1 (zh) * | 2018-05-23 | 2019-11-28 | 优视科技新加坡有限公司 | 文件处理方法、装置和系统 |
CN110650207A (zh) * | 2019-09-29 | 2020-01-03 | 中电福富信息科技有限公司 | 一种超大视频文件断点上传的方法 |
CN112615899A (zh) * | 2020-11-25 | 2021-04-06 | 北京中电普华信息技术有限公司 | 一种大文件传输方法、装置及系统 |
CN112738249A (zh) * | 2020-12-30 | 2021-04-30 | 平安证券股份有限公司 | 基于量化交易的文件上传方法、装置、设备及存储介质 |
-
2022
- 2022-03-09 CN CN202210230445.3A patent/CN114567506B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105635324A (zh) * | 2016-03-17 | 2016-06-01 | 新浪网技术(中国)有限公司 | 用于浏览器或服务器的大文件上传、续传方法和装置 |
CN106375483A (zh) * | 2016-11-09 | 2017-02-01 | 腾讯科技(深圳)有限公司 | 文件传输方法和装置 |
CN107172131A (zh) * | 2017-04-26 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
CN110392083A (zh) * | 2018-04-20 | 2019-10-29 | 华为技术有限公司 | 文件秒传的控制方法、装置及终端设备 |
WO2019222934A1 (zh) * | 2018-05-23 | 2019-11-28 | 优视科技新加坡有限公司 | 文件处理方法、装置和系统 |
CN110096889A (zh) * | 2019-04-18 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 文件检测方法、装置、设备及计算机可读存储介质 |
CN110650207A (zh) * | 2019-09-29 | 2020-01-03 | 中电福富信息科技有限公司 | 一种超大视频文件断点上传的方法 |
CN112615899A (zh) * | 2020-11-25 | 2021-04-06 | 北京中电普华信息技术有限公司 | 一种大文件传输方法、装置及系统 |
CN112738249A (zh) * | 2020-12-30 | 2021-04-30 | 平安证券股份有限公司 | 基于量化交易的文件上传方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114567506A (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9742721B2 (en) | Method, system, server and client device for message synchronizing | |
CN107145490B (zh) | 网页加载展示方法及网页加载展示装置 | |
US9792374B2 (en) | Method and system for facilitating terminal identifiers | |
JP6500086B2 (ja) | 二次元コードの解析方法および装置、コンピュータ読み取り可能な記憶媒体、コンピュータプログラムおよび端末機器 | |
CN106534268B (zh) | 一种数据共享方法及装置 | |
EP3331213A1 (en) | Access to data on a remote device | |
CN114465741B (zh) | 一种异常检测方法、装置、计算机设备及存储介质 | |
CN114567506B (zh) | 文件上传的方法、装置、计算机设备及存储介质 | |
CN112839003A (zh) | 数据校验方法及系统 | |
CN111767109A (zh) | 基于终端应用的h5页面显示方法、设备及可读存储介质 | |
EP2854363B1 (en) | Polluting results of vulnerability scans | |
CN108833961B (zh) | 获取飞行记录数据的方法、服务器和系统 | |
CN108989404B (zh) | 一种弹幕消息下发方法、服务器、系统和存储介质 | |
CN112738249B (zh) | 基于量化交易的文件上传方法、装置、设备及存储介质 | |
CN112087455B (zh) | 一种waf站点防护规则生成方法、系统、设备及介质 | |
CN113242301A (zh) | 真实服务器的选定方法、装置、计算机设备及存储介质 | |
CN110399131B (zh) | 提高应用程序稳定性的方法、装置、计算机设备 | |
CN107786529B (zh) | 网站的检测方法、装置及系统 | |
CN112969198A (zh) | 数据传输方法、终端及存储介质 | |
CN116614495A (zh) | 数据上传方法、装置、设备、存储介质及程序产品 | |
CN108965463B (zh) | 一种文件传输方法、装置和系统 | |
CN115865895A (zh) | 一种文件上传方法、装置及存储介质 | |
CN114090931A (zh) | 信息拦截方法、设备、存储介质及装置 | |
CN112256677A (zh) | 信息保存方法、装置、电子设备及计算机可读存储介质 | |
CN111666567A (zh) | 恶意修改应用程序的检测方法、装置、计算机程序和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |