CN107172131A - 文件上传方法和装置 - Google Patents

文件上传方法和装置 Download PDF

Info

Publication number
CN107172131A
CN107172131A CN201710280783.7A CN201710280783A CN107172131A CN 107172131 A CN107172131 A CN 107172131A CN 201710280783 A CN201710280783 A CN 201710280783A CN 107172131 A CN107172131 A CN 107172131A
Authority
CN
China
Prior art keywords
file
uploaded
burst
browser
server
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.)
Granted
Application number
CN201710280783.7A
Other languages
English (en)
Other versions
CN107172131B (zh
Inventor
魏哲
章玖海
李智文
闫恩全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710280783.7A priority Critical patent/CN107172131B/zh
Publication of CN107172131A publication Critical patent/CN107172131A/zh
Application granted granted Critical
Publication of CN107172131B publication Critical patent/CN107172131B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请提供一种文件上传方法和装置,上述文件上传方法包括:接收服务器发送的上传文件通知;根据所述上传文件通知,如果所述文件的大小大于预定的分片的大小,则根据所述预定的分片的大小对所述文件进行分片切割,获得所述文件的至少两个分片;通过至少两个通道并发上传所述至少两个分片至所述服务器。本申请可以实现浏览器通过至少两个通道上传文件至服务器,可以最大限度地利用网络带宽资源,提高了文件上传速度;另外,服务器可以实现通过文件对应的哈希值离散存储浏览器上传的文件,从而可以实现文件的断点续传和秒传功能。

Description

文件上传方法和装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种文件上传方法和装置。
背景技术
现有相关技术中,通过网页浏览器上传文件,一般是通过超文本标记语言(Hypertext Markup Language;以下简称:HTML)网页表单提交文件,上传到服务器进行存储。
通过HTML网页表单提交文件一般采用浏览器通过单通道上传文件数据,这种上传方式不支持断点续传,在传输出现网络中断,或者网络波动的情况下,会导致上传过程中断而必须重新上传文件数据,特别是在上传大文件的过程中,更容易发生中断的可能,却不能从中断处续传,从而浪费用户大量的时间和流量。
另外,滑动窗口协议是传输层进行流量控制的一种措施,接收方通过向发送方报告接收方自身的窗口大小,从而控制发送方的发送速度,达到防止发送方发送速度过快而导致接收方被淹没的目的。但是如果在发送方和接收方之间存在多个路由器和速率较慢的链路时,这种连接方式会严重降低请求的吞吐量,这就是单个传输控制协议(TransmissionControl Protocol;以下简称:TCP)请求容易出现的滑动窗口限制,由于TCP滑动窗口限制,浏览器通过单通道上传文件数据时,无法最大化地利用网络带宽资源,从而导致上传文件数据时消耗更多时间。
发明内容
为克服相关技术中存在的问题,本申请提供一种文件上传方法和装置。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请实施例提供一种文件上传方法,包括:接收服务器发送的上传文件通知,所述上传文件通知是所述服务器确定所述服务器中不存在浏览器发送的哈希值之后发送的,所述浏览器发送的哈希值是所述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的所述文件对应的哈希值;根据所述上传文件通知,如果所述文件的大小大于预定的分片的大小,则根据所述预定的分片的大小对所述文件进行分片切割,获得所述文件的至少两个分片;通过至少两个通道并发上传所述至少两个分片至所述服务器。
第二方面,本申请实施例提供一种文件上传方法,包括:向浏览器发送上传文件通知,所述文件上传通知是所述服务器接收到所述浏览器发送的待上传的文件对应的哈希值,确定所述服务器中不存在所述待上传的文件对应的哈希值之后发送的;接收所述浏览器通过至少两个通道上传的所述待上传的文件的至少两个分片,所述待上传的文件的至少两个分片是所述浏览器确定所述待上传的文件的大小大于预定的分片的大小之后,根据所述预定的分片的大小对所述待上传的文件进行分片切割获得的。
第三方面,本申请实施例提供一种文件上传装置,设置在浏览器中,所述文件上传装置包括:接收模块,用于接收服务器发送的上传文件通知,所述上传文件通知是所述服务器确定所述服务器中不存在浏览器发送的哈希值之后发送的,所述浏览器发送的哈希值是所述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的所述文件对应的哈希值;分片模块,用于根据所述接收模块接收的上传文件通知,当所述文件的大小大于预定的分片的大小时,根据所述预定的分片的大小对所述文件进行分片切割,获得所述文件的至少两个分片;上传模块,用于通过至少两个通道并发上传所述至少两个分片至所述服务器。
第四方面,本申请实施例还提供一种文件上传装置,包括:设置于服务器中,所述文件上传装置包括:发送模块,用于向浏览器发送上传文件通知,所述文件上传通知是所述服务器接收到所述浏览器发送的待上传的文件对应的哈希值,确定所述服务器中不存在所述待上传的文件对应的哈希值之后发送的;接收模块,用于接收所述浏览器通过至少两个通道上传的所述待上传的文件的至少两个分片,所述待上传的文件的至少两个分片是所述浏览器确定所述待上传的文件的大小大于预定的分片的大小之后,根据所述预定的分片的大小对所述待上传的文件进行分片切割获得的。
第五方面,本申请实施例提供一种计算机设备,作为浏览器,所述计算机设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;接收器,用于接收服务器发送的上传文件通知,所述上传文件通知是所述服务器确定所述服务器中不存在浏览器发送的哈希值之后发送的,所述浏览器发送的哈希值是所述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的所述文件对应的哈希值;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器根据所述接收器接收的上传文件通知,如果所述文件的大小大于预定的分片的大小,则根据所述预定的分片的大小对所述文件进行分片切割,获得所述文件的至少两个分片;发送器,用于通过至少两个通道并发上传所述处理器获得的至少两个分片至所述服务器。
第六方面,本申请实施例提供一种计算机设备,作为服务器,所述计算机设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;发送器,用于向浏览器发送上传文件通知,所述文件上传通知是所述服务器接收到所述浏览器发送的待上传的文件对应的哈希值,确定所述服务器中不存在所述待上传的文件对应的哈希值之后发送的;接收器,用于接收浏览器通过至少两个通道上传的所述待上传的文件的至少两个分片,所述待上传的文件的至少两个分片是所述浏览器确定所述待上传的文件的大小大于预定的分片的大小之后,根据所述预定的分片的大小对所述待上传的文件进行分片切割获得的。
第七方面,本申请实施例提供一种非临时性计算机可读存储介质,当所述存储介质中的计算机可执行指令在由计算机处理器执行时,用于执行第一方面提供的文件上传方法。
第八方面,本申请实施例提供一种非临时性计算机可读存储介质,当所述存储介质中的计算机可执行指令在由计算机处理器执行时,用于执行第二方面提供的文件上传方法。
本申请实施例提供的技术方案可以包括以下有益效果:浏览器接收服务器发送的上传文件通知之后,根据上述上传文件通知,如果上述文件的大小大于预定的分片的大小,则根据预定的分片的大小对上述文件进行分片切割,获得上述文件的至少两个分片,通过至少两个通道并发上传上述至少两个分片至上述服务器,从而可以实现浏览器通过至少两个通道上传文件至服务器,可以最大限度地利用网络带宽资源,提高了文件上传速度;另外,上述上传文件通知是服务器确定上述服务器中不存在浏览器发送的哈希值之后发送的,上述浏览器发送的哈希值是浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的上述文件对应的哈希值,因此服务器可以实现通过上述文件对应的哈希值离散存储浏览器上传的文件,从而可以实现文件的断点续传和秒传功能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请文件上传方法一个实施例的流程图;
图2为本申请文件上传方法中哈希值计算进度界面一个实施例的示意图;
图3为本申请文件上传方法另一个实施例的流程图;
图4为本申请文件上传方法再一个实施例的流程图;
图5为本申请文件上传方法再一个实施例的流程图;
图6为本申请文件上传方法再一个实施例的流程图;
图7为本申请文件上传方法再一个实施例的流程图;
图8为本申请文件上传方法再一个实施例的流程图;
图9为本申请文件上传装置一个实施例的结构示意图;
图10为本申请文件上传装置另一个实施例的结构示意图;
图11为本申请文件上传装置再一个实施例的结构示意图;
图12为本申请文件上传装置再一个实施例的结构示意图;
图13为本申请计算机设备一个实施例的结构示意图;
图14为本申请计算机设备另一个实施例的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1为本申请文件上传方法一个实施例的流程图,本实施例中的文件上传方法可以由浏览器实现,如图1所示,上述文件上传方法可以包括:
步骤101,接收服务器发送的上传文件通知,上述上传文件通知是上述服务器确定上述服务器中不存在浏览器发送的哈希值之后发送的,上述浏览器发送的哈希值是上述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的上述文件对应的哈希值。
本实施例中,在用户通过浏览器选择待上传的文件,并确认上传文件之后,浏览器可以获得用户上传的文件,进而可以获得用户上传的文件的二进制数据。
在获得用户上传的文件的二进制数据之后,浏览器可以对用户上传的文件的二进制数据进行哈希值计算,获得上述文件对应的哈希值。
具体地,浏览器可以采用安全哈希算法(Secure Hash Algorithm;以下简称:SHA)对用户上传的文件的二进制数据进行哈希值计算,当然本实施例并不仅限于此,浏览器也可以采用其他的哈希算法对用户上传的文件的二进制数据进行哈希值计算,本实施例对浏览器采用的哈希算法不作限定。
在对用户上传的文件的二进制数据进行哈希值计算的过程中,浏览器还可以在用户界面展示哈希值的计算进度,如图2所示,图2为本申请文件上传方法中哈希值计算进度界面一个实施例的示意图。参见图2,用户上传的文件为“iOA3.0.2015.874beta.exe”,哈希值计算进度为“15%”。
本实施例中,浏览器计算获得上述文件对应的哈希值之后,将上述文件对应的哈希值发送给服务器,以请求上传文件。
另外,在将上述文件对应的哈希值发送给服务器时,浏览器还可以将上述文件的相关信息,例如上述文件的文件名称和上述文件的大小等信息一并发送给上述服务器。
本实施例中,浏览器向上述服务器发送上述文件对应的哈希值之后,服务器先判断上述服务器中是否存在上述文件对应的哈希值,如果不存在,则上述服务器可以确定上述服务器中不存在浏览器想要上传的文件,于是上述服务器向上述浏览器发送上传文件通知,通知上述浏览器上传文件,也就是说,服务器可以实现通过上述文件对应的哈希值离散存储浏览器上传的文件,从而可以实现文件的断点续传和秒传功能。
步骤102,根据上述上传文件通知,如果上述文件的大小大于预定的分片的大小,则根据上述预定的分片的大小对上述文件进行分片切割,获得上述文件的至少两个分片。
具体地,浏览器接收到上述上传文件通知之后,确定需要上传上述文件,于是浏览器先对上述文件进行分片切割,这时需要先判断一下上述文件的大小与预定的分片的大小,如果上述文件的大小大于预定的分片的大小,则需要对上述文件进行文件切割;而如果上述文件的大小小于或等于预定的分片的大小,则不需要对上述文件进行文件切割。
其中,上述预定的分片的大小可以在具体实现时,根据业务需求和/或***性能等自行设定,本实施例对上述预定的分片的大小不作限定,举例来说,上述预定的分片的大小可以为512KB。
本实施例中,确定需要对上述文件进行文件切割之后,浏览器就按照上述预定的分片的大小将上述文件切割为至少两个分片。
步骤103,通过至少两个通道并发上传上述至少两个分片至上述服务器。
本实施例中,浏览器接收到上述上传文件通知之后,浏览器可以通过至少两个通道将上述文件切割获得的至少两个分片上传至上述服务器,从而可以实现浏览器通过至少两个通道上传文件至服务器,虽然在每个通道上传文件时仍会受到滑动窗口限制,但由于并发的上传请求一起进行,可以最大限度地利用网络带宽资源,进而可以提高文件上传速度。
本实施例中,如果上述文件的大小小于或等于预定的分片的大小,则不需要对上述文件进行文件切割,这时,浏览器需要先请求上述服务器为上述文件分配存储空间,在接收到上述服务器发送的存储空间分配完毕的响应之后,通过单通道将上述文件上传至服务器。
另外,本申请图1所示实施例中,浏览器还可以接收服务器发送的文件上传完毕通知,上述文件上传完毕通知是上述服务器确定上述服务器中存在浏览器发送的哈希值,上述浏览器发送的哈希值是上述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的上述文件对应的哈希值,并且建立上述用户的标识与上述文件之间的关联索引之后发送的。
具体地,本实施例中,浏览器向上述服务器发送上述文件对应的哈希值之后,服务器先判断上述服务器中是否存在上述文件对应的哈希值,如果存在,则上述服务器可以确定上述服务器中存在浏览器想要上传的文件,于是上述服务器建立向浏览器上传上述文件的用户的标识与上述文件之间的关联索引,然后向上述浏览器发送上传完毕通知,这种情形下,上述浏览器无需向服务器上传上述文件。也就是说,服务器可以实现通过上述文件对应的哈希值离散存储浏览器上传的文件,从而实现了文件的秒传功能。
图3为本申请文件上传方法另一个实施例的流程图,本实施例中的文件上传方法可以由浏览器实现,如图3所示,上述文件上传方法可以包括:
步骤301~步骤302,同步骤101~步骤102,在此不再赘述。
步骤303,请求上述服务器为上述至少两个分片分配存储空间。
本实施例中,浏览器将上述文件切割为至少两个分片之后,会向上述服务器发送请求,以请求上述服务器为上述至少两个分片分配存储空间,并在发送的请求中携带上述文件切割成的分片的数量。
步骤304,接收上述服务器发送的存储空间分配完毕的响应,并获得上述服务器通知的可用于上传的通道数。
其中,上述通道数是上述服务器根据上述文件的分片的数量确定的,上述通道数大于或等于2;举例来说,上述通道数可以为4。
具体地,浏览器请求服务器为上述至少两个分片分配存储空间之后,服务器会根据浏览器发送的请求中携带的分片的数量为上述至少两个分片分配存储空间,并确定可用于上传的通道数,然后,服务器会向浏览器发送存储空间分配完毕的响应,并告知浏览器可用于上传的通道数,这样浏览器可以接收到上述服务器发送的存储空间分配完毕的响应,并获得上述服务器通知的可用于上传的通道数。
步骤305,通过至少两个通道并发上传上述至少两个分片至上述服务器。
其中,上述至少两个通道所包含的通道的数量为上述服务器通知的可用于上传的通道数。
本实施例中,获得上述服务器通知的可用于上传的通道数之后,浏览器就可以通过上述通道数所指示数量的通道并发上传上述至少两个分片至服务器,从而实现了将文件上传的过程在浏览器端使用多个通道并发进行,虽然在每个通道上传文件时仍会受到滑动窗口限制,但由于并发的上传请求一起进行,可以最大限度地利用网络带宽资源,进而可以提高文件上传速度。
图4为本申请文件上传方法再一个实施例的流程图,本实施例中的文件上传方法可以由浏览器实现,如图4所示,本申请图1所示实施例中,步骤103可以包括:
步骤401,将上述至少两个分片放入待上传分片队列。
步骤402,通过上述至少两个通道将上述待上传分片队列中的分片并发上传至上述服务器。
进一步地,在通过至少两个通道将上述待上传分片队列中的分片并发上传至上述服务器的过程中,如果出现上传失败的分片,则将上述上传失败的分片重新放入上述待上传分片队列中等待重新上传。
也就是说,在具体实现时,浏览器在通过上述至少两个通道并发上传上述至少两个分片至服务器时,是先将上述至少两个分片放入待上传分片队列,然后通过上述至少两个通道将上述待上传分片队列中的分片并发上传至上述服务器,在这过程中,如果出现上传失败的分片,则将上述上传失败的分片重新放入上述待上传分片队列中等待重新上传,这就实现了断点续传功能,极大减少了由于网络环境波动等问题造成上传失败后,用户重试上传文件的时间成本,提高了用户体验。
上述文件上传方法可以在浏览器网页中实现多通道上传功能,由于目前的操作***都带有网页浏览器,相比传统的多通道上传需要依赖于安装第三方操作软件而言,具有更强的普遍适用性和便利性。
图5为本申请文件上传方法再一个实施例的流程图,本实施例中的文件上传方法可以由服务器实现,如图5所示,上述文件上传方法可以包括:
步骤501,向浏览器发送上传文件通知,上述文件上传通知是上述服务器接收到上述浏览器发送的待上传的文件对应的哈希值,确定上述服务器中不存在上述待上传的文件对应的哈希值之后发送的。
其中,上述待上传的文件对应的哈希值是浏览器对待上传的文件的二进制数据进行哈希值计算获得的。
本实施例中,在用户通过浏览器选择待上传的文件,并确认上传文件之后,浏览器可以获得用户上传的文件,进而可以获得用户上传的文件的二进制数据,其中,用户上传的文件即为浏览器待上传至服务器的文件。
在获得待上传的文件的二进制数据之后,浏览器可以对待上传的文件的二进制数据进行哈希值计算,获得待上传的文件对应的哈希值,在对待上传的文件的二进制数据进行哈希值计算的过程中,浏览器还可以在用户界面展示哈希值的计算进度,如图2所示,待上传的文件为“iOA3.0.2015.874beta.exe”,哈希值计算进度为“15%”。
浏览器计算获得上述待上传的文件对应的哈希值之后,可以将待上传的文件对应的哈希值发送给服务器,以请求上传上述待上传的文件。
另外,在将上述待上传的文件对应的哈希值发送给服务器时,浏览器还可以将上述待上传的文件的相关信息,例如上述待上传的文件的文件名称和上述待上传的文件的大小等信息一并发送给上述服务器。
本实施例中,浏览器向上述服务器发送上述待上传的文件对应的哈希值之后,服务器先判断上述服务器中是否存在上述待上传的文件对应的哈希值,如果不存在,则上述服务器可以确定上述服务器中不存在浏览器想要上传的文件,于是上述服务器向上述浏览器发送上传文件通知,通知上述浏览器上传待上传的文件,这说明,服务器可以实现通过上述待上传的文件对应的哈希值离散存储浏览器上传的文件,从而可以实现文件的断点续传和秒传功能。
步骤502,接收上述浏览器通过至少两个通道上传的上述待上传的文件的至少两个分片,上述待上传的文件的至少两个分片是上述浏览器确定上述待上传的文件的大小大于预定的分片的大小之后,根据上述预定的分片的大小对上述待上传的文件进行分片切割获得的。
本实施例中,浏览器接收到服务器发送的上传文件通知之后,浏览器可以通过至少两个通道将上述待上传的文件的至少两个分片上传至上述服务器,从而可以实现通过至少两个通道上传文件至服务器,虽然在每个通道上传文件时仍会受到滑动窗口限制,但由于并发的上传请求一起进行,可以最大限度地利用网络带宽资源,进而可以提高文件上传速度。
图6为本申请文件上传方法再一个实施例的流程图,本实施例中的文件上传方法可以由服务器实现,如图6所示,上述文件上传方法可以包括:
步骤601,接收到上述浏览器发送的待上传的文件对应的哈希值之后,如果上述服务器中存在上述待上传的文件对应的哈希值,则建立用户的标识与上述待上传的文件之间的关联索引。
其中,上述用户的标识为向上述浏览器上传上述待上传的文件的用户的标识。
步骤602,向上述浏览器发送文件上传完毕通知。
具体地,本实施例中,浏览器向上述服务器发送上述待上传的文件对应的哈希值之后,如果服务器确定上述服务器中存在上述待上传的文件对应的哈希值,则上述服务器可以确定上述服务器中存在浏览器想要上传的文件,于是上述服务器建立向浏览器上传上述待上传的文件的用户的标识与上述待上传的文件之间的关联索引,然后向上述浏览器发送上传完毕通知,这种情形下,上述浏览器无需向服务器上传上述待上传的文件。也就是说,服务器可以实现通过上述待上传的文件对应的哈希值离散存储浏览器上传的文件,从而实现了文件的秒传功能。
图7为本申请文件上传方法再一个实施例的流程图,本实施例中的文件上传方法可以由服务器实现,如图7所示,本申请图5所示实施例中,步骤502可以包括:
步骤701,接收上述浏览器发送的第一存储空间分配请求。
其中,上述第一存储空间分配请求是上述浏览器确定上述待上传的文件的大小大于预定的分片的大小,根据上述预定的分片的大小对上述待上传的文件进行分片切割,获得上述待上传的文件的至少两个分片之后发送的,用于请求服务器为上述至少两个分片分配存储空间。
本实施例中,浏览器接收到上述上传文件通知之后,确定需要上传上述待上传的文件,于是浏览器先对上述待上传的文件进行分片切割,这时需要先判断一下上述待上传的文件的大小与预定的分片的大小,如果上述待上传的文件的大小大于预定的分片的大小,则需要对上述待上传的文件进行文件切割,于是浏览器可以按照上述预定的分片的大小将上述待上传的文件切割为至少两个分片,将上述待上传的文件切割为至少两个分片之后,浏览器会向上述服务器发送第一存储空间分配请求,以请求上述服务器为上述至少两个分片分配存储空间,并在发送的第一存储空间分配请求中携带上述文件切割成的分片的数量。
其中,上述预定的分片的大小可以在具体实现时,根据业务需求和/或***性能等自行设定,本实施例对上述预定的分片的大小不作限定,举例来说,上述预定的分片的大小可以为512KB。
步骤702,根据上述第一存储空间分配请求中携带的分片的数量为上述至少两个分片分配存储空间,并确定可用于上传的通道数。
其中,上述通道数大于或等于2,举例来说,上述通道数可以为4。
步骤703,向上述浏览器发送存储空间分配完毕的响应,并向上述浏览器通知可用于上传的通道数。
具体地,接收到浏览器发送的第一存储空间分配请求之后,服务器会根据第一存储空间分配请求中携带的分片的数量为上述至少两个分片分配存储空间,并确定可用于上传的通道数,然后,服务器会向浏览器发送存储空间分配完毕的响应,并告知浏览器可用于上传的通道数,这样浏览器可以接收到上述服务器发送的存储空间分配完毕的响应,并获得上述服务器通知的可用于上传的通道数。
步骤704,接收上述浏览器通过上述通道数所指示数量的通道并发上传的至少两个分片。
本实施例中,获得上述服务器通知的可用于上传的通道数之后,浏览器就可以通过上述通道数所指示数量的通道并发上传上述至少两个分片至服务器,从而实现了将文件上传的过程在浏览器端使用多个通道并发进行,虽然在每个通道上传文件时仍会受到滑动窗口限制,但由于并发的上传请求一起进行,可以最大限度地利用网络带宽资源,进而可以提高文件上传速度。
图8为本申请文件上传方法再一个实施例的流程图,本实施例中的文件上传方法可以由服务器实现,如图8所示,本申请图5所示实施例中,步骤501之后,还可以包括:
步骤801,接收上述浏览器发送的第二存储空间分配请求。
其中,上述第二存储空间分配请求是上述浏览器在确定上述待上传的文件的大小小于或等于预定的分片的大小之后发送的,用于请求上述服务器为上述待上传的文件分配存储空间。
步骤802,向上述浏览器发送存储空间分配完毕的响应。
步骤803,接收上述浏览器通过单通道上传的上述待上传的文件。
本实施例中,如果上述待上传的文件的大小小于或等于预定的分片的大小,则浏览器不需要对上述文件进行文件切割,这时,浏览器同样需要先向服务器发送第二存储空间分配请求,用于请求上述服务器为上述待上传的文件分配存储空间,在接收到上述服务器发送的存储空间分配完毕的响应之后,通过单通道将上述待上传的文件上传至服务器。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图9为本申请文件上传装置一个实施例的结构示意图,本实施例中的文件上传装置可以作为浏览器,或者浏览器的一部分实现本申请图1~图4所示实施例提供的文件上传方法,上述文件上传装置可以包括:接收模块91、分片模块92和上传模块93;
其中,接收模块91,用于接收服务器发送的上传文件通知,上述上传文件通知是上述服务器确定上述服务器中不存在浏览器发送的哈希值之后发送的,上述浏览器发送的哈希值是上述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的上述文件对应的哈希值。
本实施例中,在用户通过浏览器选择待上传的文件,并确认上传文件之后,浏览器可以获得用户上传的文件,进而可以获得用户上传的文件的二进制数据。
在获得用户上传的文件的二进制数据之后,浏览器可以对用户上传的文件的二进制数据进行哈希值计算,获得上述文件对应的哈希值。
具体地,浏览器可以采用SHA对用户上传的文件的二进制数据进行哈希值计算,当然本实施例并不仅限于此,浏览器也可以采用其他的哈希算法对用户上传的文件的二进制数据进行哈希值计算,本实施例对浏览器采用的哈希算法不作限定。
本实施例中,浏览器计算获得上述文件对应的哈希值之后,将上述文件对应的哈希值发送给服务器,以请求上传文件。
另外,在将上述文件对应的哈希值发送给服务器时,浏览器还可以将上述文件的相关信息,例如上述文件的文件名称和上述文件的大小等信息一并发送给上述服务器。
本实施例中,浏览器向上述服务器发送上述文件对应的哈希值之后,服务器先判断上述服务器中是否存在上述文件对应的哈希值,如果不存在,则上述服务器可以确定上述服务器中不存在浏览器想要上传的文件,于是上述服务器向上述浏览器发送上传文件通知,通知上述浏览器上传文件,也就是说,服务器可以实现通过上述文件对应的哈希值离散存储浏览器上传的文件,从而可以实现文件的断点续传和秒传功能。
分片模块92,用于根据接收模块91接收的上传文件通知,当上述文件的大小大于预定的分片的大小时,根据上述预定的分片的大小对上述文件进行分片切割,获得上述文件的至少两个分片。
具体地,接收模块91接收到上述上传文件通知之后,确定需要上传上述文件,于是分片模块92先对上述文件进行分片切割,这时需要先判断一下上述文件的大小与预定的分片的大小,如果上述文件的大小大于预定的分片的大小,则分片模块92需要对上述文件进行文件切割;而如果上述文件的大小小于或等于预定的分片的大小,则不需要对上述文件进行文件切割。
其中,上述预定的分片的大小可以在具体实现时,根据业务需求和/或***性能等自行设定,本实施例对上述预定的分片的大小不作限定,举例来说,上述预定的分片的大小可以为512KB。
本实施例中,确定需要对上述文件进行文件切割之后,分片模块92就按照上述预定的分片的大小将上述文件切割为至少两个分片。
上传模块93,用于通过至少两个通道并发上传上述至少两个分片至上述服务器。
本实施例中,接收模块91接收到上述上传文件通知之后,上传模块93可以通过至少两个通道将上述文件切割获得的至少两个分片上传至上述服务器,从而可以实现浏览器通过至少两个通道上传文件至服务器,虽然在每个通道上传文件时仍会受到滑动窗口限制,但由于并发的上传请求一起进行,可以最大限度地利用网络带宽资源,进而可以提高文件上传速度。
本实施例中,如果上述文件的大小小于或等于预定的分片的大小,则不需要对上述文件进行文件切割,这时,浏览器需要先请求上述服务器为上述文件分配存储空间,在接收到上述服务器发送的存储空间分配完毕的响应之后,上传模块93通过单通道将上述文件上传至服务器。
另外,本申请提供的文件上传装置中,接收模块91,还用于接收服务器发送的文件上传完毕通知,上述文件上传完毕通知是上述服务器确定上述服务器中存在浏览器发送的哈希值,上述浏览器发送的哈希值是上述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的上述文件对应的哈希值,并且建立上述用户的标识与上述文件之间的关联索引之后发送的。
具体地,本实施例中,浏览器向上述服务器发送上述文件对应的哈希值之后,服务器先判断上述服务器中是否存在上述文件对应的哈希值,如果存在,则上述服务器可以确定上述服务器中存在浏览器想要上传的文件,于是上述服务器建立向浏览器上传上述文件的用户的标识与上述文件之间的关联索引,然后向上述浏览器发送上传完毕通知,这种情形下,上述浏览器无需向服务器上传上述文件。也就是说,服务器可以实现通过上述文件对应的哈希值离散存储浏览器上传的文件,从而实现了文件的秒传功能。
图10为本申请文件上传装置另一个实施例的结构示意图,与图9所示的文件上传装置相比,不同之处在于,图10所示的文件上传装置中还可以包括:请求模块94和获得模块95;
其中,请求模块94,用于在分片模块92根据上述预定的分片的大小对上述文件进行分片切割,获得上述文件的至少两个分片之后,请求上述服务器为上述至少两个分片分配存储空间;本实施例中,分片模块92将上述文件切割为至少两个分片之后,请求模块94会向上述服务器发送请求,以请求上述服务器为上述至少两个分片分配存储空间,并在发送的请求中携带上述文件切割成的分片的数量。
接收模块91,还用于接收上述服务器发送的存储空间分配完毕的响应;
获得模块95,用于获得上述服务器通知的可用于上传的通道数,上述通道数是上述服务器根据上述文件的分片的数量确定的,上述通道数大于或等于2;举例来说,上述通道数可以为4。
具体地,浏览器请求服务器为上述至少两个分片分配存储空间之后,服务器会根据浏览器发送的请求中携带的分片的数量为上述至少两个分片分配存储空间,并确定可用于上传的通道数,然后,服务器会向浏览器发送存储空间分配完毕的响应,并告知浏览器可用于上传的通道数,这样接收模块91可以接收到上述服务器发送的存储空间分配完毕的响应,获得模块95可以获得上述服务器通知的可用于上传的通道数。
本实施例中,上传模块93使用的至少两个通道所包含通道的数量为上述服务器通知的可用于上传的通道数,从而实现了将文件上传的过程在浏览器端使用多个通道并发进行,虽然在每个通道上传文件时仍会受到滑动窗口限制,但由于并发的上传请求一起进行,可以最大限度地利用网络带宽资源,进而可以提高文件上传速度。
在具体实现时,上传模块93,具体用于将上述至少两个分片放入待上传分片队列,通过上述至少两个通道将上述待上传分片队列中的分片并发上传至上述服务器。
进一步地,上传模块93,还用于在通过上述至少两个通道将上述待上传分片队列中的分片并发上传至上述服务器的过程中,当出现上传失败的分片时,将上述上传失败的分片重新放入上述待上传分片队列中等待重新上传。
也就是说,在具体实现时,上传模块93在通过上述至少两个通道并发上传上述至少两个分片至服务器时,是先将上述至少两个分片放入待上传分片队列,然后通过上述至少两个通道将上述待上传分片队列中的分片并发上传至上述服务器,在这过程中,如果出现上传失败的分片,则上传模块93将上述上传失败的分片重新放入上述待上传分片队列中等待重新上传,这就实现了断点续传功能,极大减少了由于网络环境波动等问题造成上传失败后,用户重试上传文件的时间成本,提高了用户体验。
进一步地,上述文件上传装置还可以包括:展示模块96;
展示模块96,用于在对用户上传的文件的二进制数据进行哈希值计算的过程中,在用户界面展示哈希值的计算进度。参见图2,用户上传的文件为“iOA3.0.2015.874beta.exe”,哈希值计算进度为“15%”。
图11为本申请文件上传装置再一个实施例的结构示意图,本实施例中的文件上传装置可以作为服务器,或者服务器的一部分实现本申请图5~图8所示实施例的流程。
如图11所示,上述文件上传装置可以包括:发送模块1101和接收模块1102;
其中,发送模块1101,用于向浏览器发送上传文件通知,上述文件上传通知是上述服务器接收到上述浏览器发送的待上传的文件对应的哈希值,确定上述服务器中不存在上述待上传的文件对应的哈希值之后发送的;
其中,上述待上传的文件对应的哈希值是浏览器对待上传的文件的二进制数据进行哈希值计算获得的。
本实施例中,在用户通过浏览器选择待上传的文件,并确认上传文件之后,浏览器可以获得用户上传的文件,进而可以获得用户上传的文件的二进制数据,其中,用户上传的文件即为浏览器待上传至服务器的文件。
在获得待上传的文件的二进制数据之后,浏览器可以对待上传的文件的二进制数据进行哈希值计算,获得待上传的文件对应的哈希值,在对待上传的文件的二进制数据进行哈希值计算的过程中,浏览器还可以在用户界面展示哈希值的计算进度,如图2所示,待上传的文件为“iOA3.0.2015.874beta.exe”,哈希值计算进度为“15%”。
浏览器计算获得上述待上传的文件对应的哈希值之后,可以将待上传的文件对应的哈希值发送给服务器,以请求上传上述待上传的文件。
另外,在将上述待上传的文件对应的哈希值发送给服务器时,浏览器还可以将上述待上传的文件的相关信息,例如上述待上传的文件的文件名称和上述待上传的文件的大小等信息一并发送给上述服务器。
本实施例中,浏览器向上述服务器发送上述待上传的文件对应的哈希值之后,服务器先判断上述服务器中是否存在上述待上传的文件对应的哈希值,如果不存在,则上述服务器可以确定上述服务器中不存在浏览器想要上传的文件,于是发送模块1101向上述浏览器发送上传文件通知,通知上述浏览器上传待上传的文件,这说明,服务器可以实现通过上述待上传的文件对应的哈希值离散存储浏览器上传的文件,从而可以实现文件的断点续传和秒传功能。
接收模块1102,用于接收上述浏览器通过至少两个通道上传的上述待上传的文件的至少两个分片,上述待上传的文件的至少两个分片是上述浏览器确定上述待上传的文件的大小大于预定的分片的大小之后,根据上述预定的分片的大小对上述待上传的文件进行分片切割获得的。
本实施例中,浏览器接收到服务器发送的上传文件通知之后,浏览器可以通过至少两个通道将上述待上传的文件的至少两个分片上传至上述服务器,从而可以实现通过至少两个通道上传文件至服务器,虽然在每个通道上传文件时仍会受到滑动窗口限制,但由于并发的上传请求一起进行,可以最大限度地利用网络带宽资源,进而可以提高文件上传速度。
图12为本申请文件上传装置再一个实施例的结构示意图,与图11所示的文件上传装置相比,不同之处在于,图12所示的文件上传装置还可以包括:建立模块1103;
建立模块1103,用于在接收到上述浏览器发送的待上传的文件对应的哈希值之后,当确定上述服务器中存在上述待上传的文件对应的哈希值时,建立用户的标识与上述待上传的文件之间的关联索引,上述用户的标识为向上述浏览器上传上述待上传的文件的用户的标识;
发送模块1101,还用于向上述浏览器发送文件上传完毕通知。
具体地,本实施例中,浏览器向上述服务器发送上述待上传的文件对应的哈希值之后,如果确定上述服务器中存在上述待上传的文件对应的哈希值,则可以确定上述服务器中存在浏览器想要上传的文件,于是建立模块1103建立向浏览器上传上述待上传的文件的用户的标识与上述待上传的文件之间的关联索引,然后发送模块1101向上述浏览器发送上传完毕通知,这种情形下,上述浏览器无需向服务器上传上述待上传的文件。也就是说,服务器可以实现通过上述待上传的文件对应的哈希值离散存储浏览器上传的文件,从而实现了文件的秒传功能。
进一步地,上述文件上传装置还可以包括:分配模块1104和确定模块1105;
接收模块1102,还用于接收上述浏览器发送的第一存储空间分配请求,上述第一存储空间分配请求是上述浏览器确定上述待上传的文件的大小大于预定的分片的大小,根据上述预定的分片的大小对上述待上传的文件进行分片切割,获得上述待上传的文件的至少两个分片之后发送的,用于请求上述服务器为上述至少两个分片分配存储空间。
本实施例中,浏览器接收到上述上传文件通知之后,确定需要上传上述待上传的文件,于是浏览器先对上述待上传的文件进行分片切割,这时需要先判断一下上述待上传的文件的大小与预定的分片的大小,如果上述待上传的文件的大小大于预定的分片的大小,则需要对上述待上传的文件进行文件切割,于是浏览器可以按照上述预定的分片的大小将上述待上传的文件切割为至少两个分片,将上述待上传的文件切割为至少两个分片之后,浏览器会向上述服务器发送第一存储空间分配请求,以请求上述服务器为上述至少两个分片分配存储空间,并在发送的第一存储空间分配请求中携带上述文件切割成的分片的数量。
其中,上述预定的分片的大小可以在具体实现时,根据业务需求和/或***性能等自行设定,本实施例对上述预定的分片的大小不作限定,举例来说,上述预定的分片的大小可以为512KB。
分配模块1104,用于根据接收模块1102接收的第一存储空间分配请求中携带的分片的数量为上述至少两个分片分配存储空间。
确定模块1105,用于根据接收模块1102接收的第一存储空间分配请求中携带的分片的数量确定可用于上传的通道数,上述通道数大于或等于2;举例来说,上述通道数可以为4。
发送模块1101,还用于向上述浏览器发送存储空间分配完毕的响应,并向上述浏览器通知可用于上传的通道数;具体地,接收模块1102接收到浏览器发送的第一存储空间分配请求之后,分配模块1104会根据第一存储空间分配请求中携带的分片的数量为上述至少两个分片分配存储空间,确定模块1105确定可用于上传的通道数,然后,发送模块1101会向浏览器发送存储空间分配完毕的响应,并告知浏览器可用于上传的通道数,这样浏览器可以接收到上述服务器发送的存储空间分配完毕的响应,并获得上述服务器通知的可用于上传的通道数。
接收模块1102,还用于接收上述浏览器通过上述通道数所指示数量的通道并发上传的至少两个分片。本实施例中,获得上述服务器通知的可用于上传的通道数之后,浏览器就可以通过上述通道数所指示数量的通道并发上传上述至少两个分片至服务器,从而实现了将文件上传的过程在浏览器端使用多个通道并发进行,虽然在每个通道上传文件时仍会受到滑动窗口限制,但由于并发的上传请求一起进行,可以最大限度地利用网络带宽资源,进而可以提高文件上传速度。
进一步地,接收模块1102,还用于接收上述浏览器发送的第二存储空间分配请求,上述第二存储空间分配请求是上述浏览器在确定上述待上传的文件的大小小于或等于预定的分片的大小之后发送的,用于请求上述服务器为上述待上传的文件分配存储空间;
发送模块1101,还用于向上述浏览器发送存储空间分配完毕的响应;
接收模块1102,还用于接收上述浏览器通过单通道上传的上述待上传的文件。
本实施例中,如果上述待上传的文件的大小小于或等于预定的分片的大小,则浏览器不需要对上述文件进行文件切割,这时,浏览器同样需要先向服务器发送第二存储空间分配请求,用于请求上述服务器为上述待上传的文件分配存储空间,在接收到上述服务器发送的存储空间分配完毕的响应之后,浏览器通过单通道将上述待上传的文件上传至服务器。
图13为本申请计算机设备一个实施例的结构示意图,本实施例中的计算机设备可以实现浏览器的功能,上述计算机设备可以包括:一个或多个处理器;存储器,用于存储一个或多个程序;接收器,用于接收服务器发送的上传文件通知,上述上传文件通知是上述服务器确定上述服务器中不存在浏览器发送的哈希值之后发送的,上述浏览器发送的哈希值是上述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的上述文件对应的哈希值;当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器根据上述接收器接收的上传文件通知,如果上述文件的大小大于预定的分片的大小,则根据上述预定的分片的大小对上述文件进行分片切割,获得上述文件的至少两个分片;发送器,用于通过至少两个通道并发上传上述处理器获得的至少两个分片至上述服务器。
图13示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图13显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图13所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及***组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图13未显示,通常称为“硬盘驱动器”)。尽管图13中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc ReadOnly Memory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图13所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图13中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元16通过运行存储在***存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本申请图1~图4所示实施例提供的文件上传方法。
本实施例还提供一种非临时性计算机可读存储介质,当上述存储介质中的计算机可执行指令在由计算机处理器执行时,用于执行本申请图1~图4所示实施例提供的文件上传方法。
上述非临时性计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory;以下简称:ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
图14为本申请计算机设备另一个实施例的结构示意图,本实施例中的计算机设备可以实现服务器的功能,上述计算机设备可以包括:一个或多个处理器;存储器,用于存储一个或多个程序;发送器,用于向浏览器发送上传文件通知,上述文件上传通知是服务器接收到上述浏览器发送的待上传的文件对应的哈希值,确定上述服务器中不存在上述待上传的文件对应的哈希值之后发送的;接收器,用于接收通过至少两个通道上传的上述待上传的文件的至少两个分片,上述待上传的文件的至少两个分片是上述浏览器确定上述待上传的文件的大小大于预定的分片的大小之后,根据上述预定的分片的大小对上述待上传的文件进行分片切割获得的。
图14示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图14显示的计算机设备120仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图14所示,计算机设备120以通用计算设备的形式表现。计算机设备120的组件可以包括但不限于:一个或者多个处理器或者处理单元160,***存储器280,连接不同***组件(包括***存储器280和处理单元160)的总线180。
总线180表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及***组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备120典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机设备120访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器280可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)300和/或高速缓存存储器320。计算机设备120可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***340可以用于读写不可移动的、非易失性磁介质(图14未显示,通常称为“硬盘驱动器”)。尽管图14中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc ReadOnly Memory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线180相连。存储器280可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块420的程序/实用工具400,可以存储在例如存储器280中,这样的程序模块420包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块420通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备120也可以与一个或多个外部设备140(例如键盘、指向设备、显示器240等)通信,还可与一个或者多个使得用户能与该计算机设备120交互的设备通信,和/或与使得该计算机设备120能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口220进行。并且,计算机设备120还可以通过网络适配器200与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图14所示,网络适配器200通过总线180与计算机设备120的其它模块通信。应当明白,尽管图14中未示出,可以结合计算机设备120使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元160通过运行存储在***存储器280中的程序,从而执行各种功能应用以及数据处理,例如实现本申请图5~图8所示实施例提供的文件上传方法。
本实施例还提供一种非临时性计算机可读存储介质,当上述存储介质中的计算机可执行指令在由计算机处理器执行时,用于执行本申请图5~图8所示实施例提供的文件上传方法。
上述非临时性计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory;以下简称:ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(Programmable Gate Array;以下简称:PGA),现场可编程门阵列(Field ProgrammableGate Array;以下简称:FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (18)

1.一种文件上传方法,其特征在于,包括:
接收服务器发送的上传文件通知,所述上传文件通知是所述服务器确定所述服务器中不存在浏览器发送的哈希值之后发送的,所述浏览器发送的哈希值是所述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的所述文件对应的哈希值;
根据所述上传文件通知,如果所述文件的大小大于预定的分片的大小,则根据所述预定的分片的大小对所述文件进行分片切割,获得所述文件的至少两个分片;
通过至少两个通道并发上传所述至少两个分片至所述服务器。
2.根据权利要求1所述的方法,其特征在于,还包括:
接收服务器发送的文件上传完毕通知,所述文件上传完毕通知是所述服务器确定所述服务器中存在浏览器发送的哈希值,所述浏览器发送的哈希值是所述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的所述文件对应的哈希值,并且建立所述用户的标识与所述文件之间的关联索引之后发送的。
3.根据权利要求1所述的方法,其特征在于,所述根据所述预定的分片的大小对所述文件进行分片切割,获得所述文件的至少两个分片之后,还包括:
请求所述服务器为所述至少两个分片分配存储空间;
接收所述服务器发送的存储空间分配完毕的响应,并获得所述服务器通知的可用于上传的通道数,所述通道数是所述服务器根据所述文件的分片的数量确定的,所述通道数大于或等于2;
所述至少两个通道所包含的通道的数量为所述服务器通知的可用于上传的通道数。
4.根据权利要求1所述的方法,其特征在于,所述通过至少两个通道并发上传所述至少两个分片至所述服务器包括:
将所述至少两个分片放入待上传分片队列;
通过所述至少两个通道将所述待上传分片队列中的分片并发上传至所述服务器。
5.根据权利要求4所述的方法,其特征在于,还包括:
在通过至少两个通道将所述待上传分片队列中的分片并发上传至所述服务器的过程中,如果出现上传失败的分片,则将所述上传失败的分片重新放入所述待上传分片队列中等待重新上传。
6.根据权利要求1-5任意一项所述的方法,其特征在于,还包括:
在对用户上传的文件的二进制数据进行哈希值计算的过程中,在用户界面展示哈希值的计算进度。
7.一种文件上传方法,其特征在于,包括:
向浏览器发送上传文件通知,所述文件上传通知是所述服务器接收到所述浏览器发送的待上传的文件对应的哈希值,确定所述服务器中不存在所述待上传的文件对应的哈希值之后发送的;
接收所述浏览器通过至少两个通道上传的所述待上传的文件的至少两个分片,所述待上传的文件的至少两个分片是所述浏览器确定所述待上传的文件的大小大于预定的分片的大小之后,根据所述预定的分片的大小对所述待上传的文件进行分片切割获得的。
8.根据权利要求7所述的方法,其特征在于,还包括:
接收到所述浏览器发送的待上传的文件对应的哈希值之后,如果所述服务器中存在所述待上传的文件对应的哈希值,则建立用户的标识与所述待上传的文件之间的关联索引,所述用户的标识为向所述浏览器上传所述待上传的文件的用户的标识;
向所述浏览器发送文件上传完毕通知。
9.根据权利要求7所述的方法,其特征在于,所述接收所述浏览器通过至少两个通道上传的所述待上传的文件的至少两个分片包括:
接收所述浏览器发送的第一存储空间分配请求,所述第一存储空间分配请求是所述浏览器确定所述待上传的文件的大小大于预定的分片的大小,根据所述预定的分片的大小对所述待上传的文件进行分片切割,获得所述待上传的文件的至少两个分片之后发送的,用于请求所述服务器为所述至少两个分片分配存储空间;
根据所述第一存储空间分配请求中携带的分片的数量为所述至少两个分片分配存储空间,并确定可用于上传的通道数,所述通道数大于或等于2;
向所述浏览器发送存储空间分配完毕的响应,并向所述浏览器通知可用于上传的通道数;
接收所述浏览器通过所述通道数所指示数量的通道并发上传的至少两个分片。
10.一种文件上传装置,设置在浏览器中,其特征在于,所述文件上传装置包括:
接收模块,用于接收服务器发送的上传文件通知,所述上传文件通知是所述服务器确定所述服务器中不存在浏览器发送的哈希值之后发送的,所述浏览器发送的哈希值是所述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的所述文件对应的哈希值;
分片模块,用于根据所述接收模块接收的上传文件通知,当所述文件的大小大于预定的分片的大小时,根据所述预定的分片的大小对所述文件进行分片切割,获得所述文件的至少两个分片;
上传模块,用于通过至少两个通道并发上传所述至少两个分片至所述服务器。
11.根据权利要求10所述的装置,其特征在于,
所述接收模块,还用于接收服务器发送的文件上传完毕通知,所述文件上传完毕通知是所述服务器确定所述服务器中存在浏览器发送的哈希值,所述浏览器发送的哈希值是所述浏览器对用户上传的文件的二进制数据进行哈希值计算,获得的所述文件对应的哈希值,并且建立所述用户的标识与所述文件之间的关联索引之后发送的。
12.根据权利要求10所述的装置,其特征在于,还包括:请求模块和获得模块;
所述请求模块,用于在所述分片模块根据所述预定的分片的大小对所述文件进行分片切割,获得所述文件的至少两个分片之后,请求所述服务器为所述至少两个分片分配存储空间;
所述接收模块,还用于接收所述服务器发送的存储空间分配完毕的响应;
所述获得模块,用于获得所述服务器通知的可用于上传的通道数,所述通道数是所述服务器根据所述文件的分片的数量确定的,所述通道数大于或等于2;
所述上传模块使用的至少两个通道所包含通道的数量为所述服务器通知的可用于上传的通道数;
所述上传模块,具体用于将所述至少两个分片放入待上传分片队列,通过所述至少两个通道将所述待上传分片队列中的分片并发上传至所述服务器;
所述上传模块,还用于在通过所述至少两个通道将所述待上传分片队列中的分片并发上传至所述服务器的过程中,当出现上传失败的分片时,将所述上传失败的分片重新放入所述待上传分片队列中等待重新上传。
13.根据权利要求10-12任意一项所述的装置,其特征在于,还包括:
展示模块,用于在对用户上传的文件的二进制数据进行哈希值计算的过程中,在用户界面展示哈希值的计算进度。
14.一种文件上传装置,设置于服务器中,其特征在于,所述文件上传装置包括:
发送模块,用于向浏览器发送上传文件通知,所述文件上传通知是所述服务器接收到所述浏览器发送的待上传的文件对应的哈希值,确定所述服务器中不存在所述待上传的文件对应的哈希值之后发送的;
接收模块,用于接收所述浏览器通过至少两个通道上传的所述待上传的文件的至少两个分片,所述待上传的文件的至少两个分片是所述浏览器确定所述待上传的文件的大小大于预定的分片的大小之后,根据所述预定的分片的大小对所述待上传的文件进行分片切割获得的。
15.根据权利要求14所述的装置,其特征在于,还包括:建立模块;
所述建立模块,用于在接收到所述浏览器发送的待上传的文件对应的哈希值之后,当确定所述服务器中存在所述待上传的文件对应的哈希值时,建立用户的标识与所述待上传的文件之间的关联索引,所述用户的标识为向所述浏览器上传所述待上传的文件的用户的标识;
所述发送模块,还用于向所述浏览器发送文件上传完毕通知。
16.根据权利要求14所述的装置,其特征在于,还包括:分配模块和确定模块;
所述接收模块,还用于接收所述浏览器发送的第一存储空间分配请求,所述第一存储空间分配请求是所述浏览器确定所述待上传的文件的大小大于预定的分片的大小,根据所述预定的分片的大小对所述待上传的文件进行分片切割,获得所述待上传的文件的至少两个分片之后发送的,用于请求所述服务器为所述至少两个分片分配存储空间;
所述分配模块,用于根据所述接收模块接收的第一存储空间分配请求中携带的分片的数量为所述至少两个分片分配存储空间;
所述确定模块,用于根据所述接收模块接收的第一存储空间分配请求中携带的分片的数量确定可用于上传的通道数,所述通道数大于或等于2;
所述发送模块,还用于向所述浏览器发送存储空间分配完毕的响应,并向所述浏览器通知可用于上传的通道数;
所述接收模块,还用于接收所述浏览器通过所述通道数所指示数量的通道并发上传的至少两个分片。
17.一种非临时性计算机可读存储介质,当所述存储介质中的计算机可执行指令在由计算机处理器执行时,用于执行如权利要求1-6中任一所述的方法。
18.一种非临时性计算机可读存储介质,当所述存储介质中的计算机可执行指令在由计算机处理器执行时,用于执行如权利要求7-9中任一所述的方法。
CN201710280783.7A 2017-04-26 2017-04-26 文件上传方法和装置 Active CN107172131B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710280783.7A CN107172131B (zh) 2017-04-26 2017-04-26 文件上传方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710280783.7A CN107172131B (zh) 2017-04-26 2017-04-26 文件上传方法和装置

Publications (2)

Publication Number Publication Date
CN107172131A true CN107172131A (zh) 2017-09-15
CN107172131B CN107172131B (zh) 2020-12-04

Family

ID=59813275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710280783.7A Active CN107172131B (zh) 2017-04-26 2017-04-26 文件上传方法和装置

Country Status (1)

Country Link
CN (1) CN107172131B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107528926A (zh) * 2017-10-11 2017-12-29 郑州云海信息技术有限公司 一种文件上传方法和***
CN107707679A (zh) * 2017-11-27 2018-02-16 小草数语(北京)科技有限公司 文件上传方法及装置
CN108093034A (zh) * 2017-12-06 2018-05-29 深圳云天励飞技术有限公司 断点续传方法及装置、电子设备和计算机可读存储介质
CN109286477A (zh) * 2018-10-30 2019-01-29 佛山市瑞德物联科技有限公司 一种支持乱序传输的数据传输方法
CN109756568A (zh) * 2018-12-29 2019-05-14 上海掌门科技有限公司 文件的处理方法、设备及计算机可读存储介质
CN109819056A (zh) * 2019-03-28 2019-05-28 山东浪潮云信息技术有限公司 一种基于数据流和哈希比对的文件上传方法及***
CN110134326A (zh) * 2018-02-09 2019-08-16 北京京东尚科信息技术有限公司 一种分片切分的方法和装置
CN110636368A (zh) * 2018-06-25 2019-12-31 杭州海康威视数字技术股份有限公司 媒体播放方法及装置
CN111131450A (zh) * 2019-12-23 2020-05-08 北京奇艺世纪科技有限公司 文件上传方法、重组方法及装置
CN111897774A (zh) * 2019-05-05 2020-11-06 北京兆易创新科技股份有限公司 一种文件上传方法、装置、电子设备及存储介质
CN111935227A (zh) * 2020-07-10 2020-11-13 上海淇毓信息科技有限公司 通过浏览器上传文件的方法、浏览器和电子设备
CN112637357A (zh) * 2020-12-29 2021-04-09 成都知道创宇信息技术有限公司 文件传输方法、装置和终端设备
CN113726842A (zh) * 2021-07-09 2021-11-30 北京房江湖科技有限公司 一种文件上传方法和装置、电子设备及存储介质
CN114039968A (zh) * 2021-11-05 2022-02-11 上海商汤科技开发有限公司 资源包上传方法及装置、电子设备和存储介质
CN114338646A (zh) * 2021-11-29 2022-04-12 王建冬 文件交互传输方法、装置、设备及存储介质
CN114567506A (zh) * 2022-03-09 2022-05-31 平安科技(深圳)有限公司 文件上传的方法、装置、计算机设备及存储介质
CN114866533A (zh) * 2022-04-28 2022-08-05 麦加芯彩新材料科技(上海)股份有限公司 一种文件上传方法、装置及电子设备
CN114884936A (zh) * 2022-05-05 2022-08-09 中国联合网络通信集团有限公司 终端设备的数据处理方法、装置、设备及介质
CN117978801A (zh) * 2024-03-28 2024-05-03 苏州元脑智能科技有限公司 一种模型管理方法、装置、计算机设备和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104253816A (zh) * 2014-09-25 2014-12-31 武汉传神信息技术有限公司 基于http协议的大文件页面断点续传的方法
CN104468843A (zh) * 2014-12-31 2015-03-25 浪潮软件股份有限公司 一种文件上传方法及装置
CN105227610A (zh) * 2014-06-30 2016-01-06 北京金山安全软件有限公司 一种文件上传、保存方法及装置
CN105472035A (zh) * 2016-01-04 2016-04-06 百度在线网络技术(北京)有限公司 一种文件传输方法及装置
CN105635324A (zh) * 2016-03-17 2016-06-01 新浪网技术(中国)有限公司 用于浏览器或服务器的大文件上传、续传方法和装置
CN106060160A (zh) * 2016-07-07 2016-10-26 腾讯科技(深圳)有限公司 一种文件上传方法及装置
CN106375483A (zh) * 2016-11-09 2017-02-01 腾讯科技(深圳)有限公司 文件传输方法和装置
CN106506676A (zh) * 2016-11-24 2017-03-15 武汉理工大学 文件传输处理方法及辅助***
US20170093954A1 (en) * 2015-09-28 2017-03-30 Sony Corporation Uploading over parallel requests

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105227610A (zh) * 2014-06-30 2016-01-06 北京金山安全软件有限公司 一种文件上传、保存方法及装置
CN104253816A (zh) * 2014-09-25 2014-12-31 武汉传神信息技术有限公司 基于http协议的大文件页面断点续传的方法
CN104468843A (zh) * 2014-12-31 2015-03-25 浪潮软件股份有限公司 一种文件上传方法及装置
US20170093954A1 (en) * 2015-09-28 2017-03-30 Sony Corporation Uploading over parallel requests
CN105472035A (zh) * 2016-01-04 2016-04-06 百度在线网络技术(北京)有限公司 一种文件传输方法及装置
CN105635324A (zh) * 2016-03-17 2016-06-01 新浪网技术(中国)有限公司 用于浏览器或服务器的大文件上传、续传方法和装置
CN106060160A (zh) * 2016-07-07 2016-10-26 腾讯科技(深圳)有限公司 一种文件上传方法及装置
CN106375483A (zh) * 2016-11-09 2017-02-01 腾讯科技(深圳)有限公司 文件传输方法和装置
CN106506676A (zh) * 2016-11-24 2017-03-15 武汉理工大学 文件传输处理方法及辅助***

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107528926A (zh) * 2017-10-11 2017-12-29 郑州云海信息技术有限公司 一种文件上传方法和***
CN107707679A (zh) * 2017-11-27 2018-02-16 小草数语(北京)科技有限公司 文件上传方法及装置
CN108093034A (zh) * 2017-12-06 2018-05-29 深圳云天励飞技术有限公司 断点续传方法及装置、电子设备和计算机可读存储介质
CN110134326A (zh) * 2018-02-09 2019-08-16 北京京东尚科信息技术有限公司 一种分片切分的方法和装置
CN110636368B (zh) * 2018-06-25 2021-12-24 杭州海康威视数字技术股份有限公司 媒体播放方法、***、装置及存储介质
CN110636368A (zh) * 2018-06-25 2019-12-31 杭州海康威视数字技术股份有限公司 媒体播放方法及装置
CN109286477A (zh) * 2018-10-30 2019-01-29 佛山市瑞德物联科技有限公司 一种支持乱序传输的数据传输方法
CN109756568A (zh) * 2018-12-29 2019-05-14 上海掌门科技有限公司 文件的处理方法、设备及计算机可读存储介质
CN109756568B (zh) * 2018-12-29 2022-05-27 上海掌门科技有限公司 文件的处理方法、设备及计算机可读存储介质
CN109819056A (zh) * 2019-03-28 2019-05-28 山东浪潮云信息技术有限公司 一种基于数据流和哈希比对的文件上传方法及***
CN111897774B (zh) * 2019-05-05 2024-04-09 兆易创新科技集团股份有限公司 一种文件上传方法、装置、电子设备及存储介质
CN111897774A (zh) * 2019-05-05 2020-11-06 北京兆易创新科技股份有限公司 一种文件上传方法、装置、电子设备及存储介质
CN111131450B (zh) * 2019-12-23 2022-06-21 北京奇艺世纪科技有限公司 文件上传方法、重组方法及装置
CN111131450A (zh) * 2019-12-23 2020-05-08 北京奇艺世纪科技有限公司 文件上传方法、重组方法及装置
CN111935227A (zh) * 2020-07-10 2020-11-13 上海淇毓信息科技有限公司 通过浏览器上传文件的方法、浏览器和电子设备
CN112637357A (zh) * 2020-12-29 2021-04-09 成都知道创宇信息技术有限公司 文件传输方法、装置和终端设备
CN113726842A (zh) * 2021-07-09 2021-11-30 北京房江湖科技有限公司 一种文件上传方法和装置、电子设备及存储介质
CN114039968A (zh) * 2021-11-05 2022-02-11 上海商汤科技开发有限公司 资源包上传方法及装置、电子设备和存储介质
CN114338646A (zh) * 2021-11-29 2022-04-12 王建冬 文件交互传输方法、装置、设备及存储介质
CN114567506A (zh) * 2022-03-09 2022-05-31 平安科技(深圳)有限公司 文件上传的方法、装置、计算机设备及存储介质
CN114567506B (zh) * 2022-03-09 2024-03-19 平安科技(深圳)有限公司 文件上传的方法、装置、计算机设备及存储介质
CN114866533A (zh) * 2022-04-28 2022-08-05 麦加芯彩新材料科技(上海)股份有限公司 一种文件上传方法、装置及电子设备
CN114884936A (zh) * 2022-05-05 2022-08-09 中国联合网络通信集团有限公司 终端设备的数据处理方法、装置、设备及介质
CN114884936B (zh) * 2022-05-05 2024-03-01 中国联合网络通信集团有限公司 终端设备的数据处理方法、装置、设备及介质
CN117978801A (zh) * 2024-03-28 2024-05-03 苏州元脑智能科技有限公司 一种模型管理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN107172131B (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
CN107172131A (zh) 文件上传方法和装置
KR101394796B1 (ko) 디바이스들의 토폴로지에서 오디오/비디오 스트리밍을 위한 메시지 전달 프레임워크
JP7505038B2 (ja) インタラクション方法、装置及び電子機器
CN109756568A (zh) 文件的处理方法、设备及计算机可读存储介质
CN107967184A (zh) 远程协助中复制粘贴方法、装置及电子设备
CN111786887A (zh) 由控制设备执行的数据转发方法、装置、计算设备和介质
CN114221870B (zh) 用于服务器的带宽分配方法和装置
CN107211018A (zh) 调整媒体流化的质量等级
WO2015062390A1 (zh) 虚拟机迁移方法、装置及***
US7826356B2 (en) Method and system for controlling flow in an asymmetric communication channel
US10157594B2 (en) Layered content display system
US7764627B2 (en) Interconnect circuit, system, and method for providing operating modes for communication channels
US11089137B2 (en) Dynamic data transmission
WO2023207378A1 (zh) 一种时隙分配方法及相关设备
US11140431B2 (en) Method and system for prioritizing contents for content processing by multichannel video programming distributors
CN113852484B (zh) 终端设备配网方法、装置、电子设备和计算机可读介质
CN112215774B (zh) 模型训练和图像去雾方法、装置、设备和计算机可读介质
CN112685455B (zh) 实时数据分类显示方法、装置、电子设备和可读介质
US20150180777A1 (en) Data processing apparatus and method
US11809365B2 (en) Data transmission method
CN113076195B (zh) 对象的分流方法、装置、可读介质和电子设备
US20230105094A1 (en) Power saving techniques for layer-to-layer interface
CN113873577A (zh) 数据发送方法和装置
CN116418851A (zh) 用于对车辆的组装***进行点检维修的方法和设备
CN115269645A (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