CN113824756A - 文件处理方法、装置、存储介质及电子设备 - Google Patents
文件处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN113824756A CN113824756A CN202011496136.8A CN202011496136A CN113824756A CN 113824756 A CN113824756 A CN 113824756A CN 202011496136 A CN202011496136 A CN 202011496136A CN 113824756 A CN113824756 A CN 113824756A
- Authority
- CN
- China
- Prior art keywords
- file
- downloaded
- stream
- client
- request
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000003993 interaction Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
Images
Classifications
-
- 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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供一种文件处理方法、装置、存储介质及电子设备;涉及数据处理技术领域。所述方法包括:接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件;接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流;将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。本公开将第三方服务平台返回的文件流直接发送给客户端,无需本地下载文件,从而提高客户端的文件下载速度。
Description
技术领域
本公开涉及数据处理技术领域,具体而言,涉及一种文件处理方法、文件处理装置、计算机可读存储介质以及电子设备。
背景技术
随着互联网的发展,各种各样的文件都需要在网上进行处理。例如,从第三方服务平台下载文件,再将该文件转发给其他方进行下载。
现有技术中,可以在其他方请求获取文件时,从第三方服务平台将该文件下载到本地。同时,将读取到的该文件的字节流发送给其他方,完成后,删除下载到本地的文件。由此可知,整个文件处理的过程需要经过两次文件读取操作,花费的时间成本较高,即文件下载速度较慢。
因此,提供一种文件处理方法以提高文件下载速度是非常必要的。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种文件处理方法、文件处理装置、计算机可读存储介质以及电子设备,以解决现有技术中文件下载速度较慢的问题。
根据本公开的第一方面,提供一种文件处理方法,包括:
接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件;
接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流;
将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。
在本公开的一种示例性实施例中,所述接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件,包括:
接收客户端发送的文件下载请求后,组装所述文件下载请求中的请求信息,生成对应的请求报文;
调用所述第三方服务平台提供的消息交互接口;
通过所述消息交互接口将所述请求报文发送至所述第三方服务平台,以使所述第三方服务平台根据所述请求报文中的文件类型,调用对应的文件生成器,生成所述待下载文件。
在本公开的一种示例性实施例中,所述将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件,还包括:
将所述第三方服务平台返回的所述待下载文件的原始文件格式发送至所述客户端,以使所述客户端基于所述原始文件格式将所述文件流转换为所述待下载文件。
在本公开的一种示例性实施例中,所述方法还包括:
将所述待下载文件缓存至所述客户端的预设存储目录中,并向所述客户端发送文件下载提示信息,其中,所述文件下载提示信息中包括所述预设存储目录对应的存储路径。
根据本公开的第二方面,提供一种文件处理方法,包括:
向服务器发送文件下载请求,以使所述服务器将所述文件下载请求转发至第三方服务平台;
接收由服务器发送的文件流,所述文件流由所述第三方服务平台根据所述文件下载请求中的请求信息生成的待下载文件转换得到;
将所述文件流转换为所述待下载文件。
根据本公开的第三方面,提供一种文件处理方法,包括:
客户端发送文件下载请求至服务器;
所述服务器接收所述文件下载请求,并将所述文件下载请求转发至第三方服务平台;
所述第三方服务平台接收所述文件下载请求后,根据所述文件下载请求中的请求信息生成待下载文件,并将由所述待下载文件转换得到的文件流发送至所述服务器;
所述服务器接收所述文件流,并将所述文件流转发至所述客户端;
所述客户端接收所述文件流后,将所述文件流转换为所述待下载文件。
在本公开的一种示例性实施例中,所述将由所述待下载文件转换得到的文件流发送至所述服务器,包括:
创建文件流数组;
循环读取所述待下载文件的数据,并保存至所述文件流数组;
将所述文件流数组中的数据发送至所述服务器。
根据本公开的第四方面,提供一种文件处理装置,包括:
请求转发模块,用于接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件;
文件流接收模块,用于接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流;
文件流发送模块,用于将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。
根据本公开的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的文件处理方法。
根据本公开的第六方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述所述的文件处理方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开示例实施方式所提供的文件处理方法中,通过接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件;接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流;将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。一方面,该方法将第三方服务平台返回的文件流直接发送给客户端,无需本地下载文件,从而提高客户端的文件下载速度。另一方面,由于无需本地下载文件,可以减少文件下载到本地的维护成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了可以应用本公开实施例的一种文件处理方法及装置的示例性系统架构的示意图;
图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图;
图3示意性示出了根据本公开的一个实施例的文件处理方法的流程图;
图4示意性示出了根据本公开的一个实施例的请求转发步骤的流程图;
图5示意性示出了根据本公开的另一个实施例的文件处理方法的流程图;
图6示意性示出了根据本公开的又一个实施例的文件处理方法的流程图;
图7示意性示出了根据本公开的又一个实施例的文件处理方法的流程图;
图8示意性示出了根据本公开的一个实施例的文件处理装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
以下对本公开实施例的技术方案进行详细阐述:
现有技术中,获取第三方服务平台提供的文件,可以通过调用该服务平台提供的消息交互接口,以字节流的方式返回到本地下载该文件。如需将该文件对外提供时,不能将该服务平台的下载地址组装好,转发给其他方直接进行下载。因涉数据安全保护,需要准备一个对外服务,可以预先把文件下载到本地,通过读取本地服务器中的该文件,以字节流的方式返回给其他方完成下载。
其中,将文件下载到本地服务器中,需要预先准备硬盘空间存放,也需要定期维护文件存放目录。而且,还需要添加一个定时下载的功能,所需的人力成本较高。
此外,也可以在其他方请求获取文件时,再从第三方服务平台将该文件下载到本地,同时,将读取到的该文件的字节流发送给其他方。发送完成后,删除下载到本地的文件。由此可知,整个文件处理的过程需要经过两次文件读取操作,花费的时间成本较高,即文件下载的速度较慢。
基于上述一个或多个问题,本示例实施方式提供了一种文件处理方法。
图1示出了可以应用本公开实施例的一种文件处理方法及装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个和105、106、107中的一个或多个,以及服务器104。终端设备101、102、103和105、106、107可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器104可以是多个服务器组成的服务器集群等。
本公开实施例所提供的文件处理方法一般由服务器104执行,相应地,文件处理装置一般设置于服务器104中。但本领域技术人员容易理解的是,本公开实施例所提供的文件处理方法也可以由终端设备101、102、103,也可以由终端设备105、106、107执行,相应的,文件处理装置也可以设置于终端设备101、102、103中,也可以设置于终端设备105、106、107中,本示例性实施例中对此不做特殊限定。
图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图2所示,计算机系统200包括中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从存储部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有系统操作所需的各种程序和数据。CPU201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的方法和装置中限定的各种功能。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3至图6所示的各个步骤等。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
参考图3所示,该文件处理方法可以包括以下步骤S310至步骤S330:
步骤S310.接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件;
步骤S320.接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流;
步骤S330.将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。
在本公开示例实施方式所提供的文件处理方法中,通过接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件;接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流;将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。一方面,该方法将第三方服务平台返回的文件流直接发送给客户端,无需本地下载文件,从而提高客户端的文件下载速度。另一方面,由于无需本地下载文件,可以减少文件下载到本地的维护成本。
下面,对于本示例实施方式的上述步骤进行更加详细的说明。
在步骤S310中,接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件。参考图4所示,该过程可以包括以下步骤:
步骤S410.接收客户端发送的文件下载请求后,组装所述文件下载请求中的请求信息,生成对应的请求报文。
本示例实施方式中,待下载的文件可以是电子文件,根据存储方式的不同,电子文件又可以分为版式文件和流式文件。其中,版式文件是版面呈现效果高度精确固定的电子文件,可以是PDF(Portable Document Format,便携文档格式)格式、OFD(Open Fixed-layout Document,开放版式文件)格式,也可以是CAJ、NH、KDH格式等。版式文件的呈现与设备无关,在各种设备上阅读、打印或印刷时,其版面的呈现结果都是一致的。版式文件可以应用于成文后文件的发布、传播和存档。流式文件中,构成流式文件的基本单位是字符,流式文件是有序字符的集合,其长度为该流式文件所包含的字符个数。因此,流式文件又称为字符流文件。流式文件无结构,且管理简单,用户可以方便地对其进行操作。
示例性的,可以接收客户端发出的文件下载请求。例如,可以接收用户通过浏览器发出的文件下载请求。具体的,可以通过消息交互接口发送文件下载请求,如HTTP(HyperText Transfer Protocol,超文本传输协议)接口、HTTPS(Hyper Text Transfer Protocolover Secure Socket Layer,超文本传输安全协议)接口等。对应的,可以通过HTTP协议接收该文件下载请求,也可以通过HTTPS协议接收该文件下载请求。
接收客户端发送的文件下载请求后,可以先组装所述文件下载请求中的请求信息,生成对应的请求报文。在一种示例实施方式中,可以生成接第三方服务平台提供的消息交互接口的请求报文。所述请求报文可以是HTTP报文,包含用于HTTP协议交互的信息,HTTP报文可以承载多种数据类型的数字数据,如图片、视频、HTML文档、软件应用程序等。HTTP报文格式可以为定长报文格式、分隔符报文格式、XML(Extensible Markup Language,可扩展标记语言)报文格式。保存方式可以是持久化保存方式,如可以包括保存至数据库或保存至磁盘。
请求报文可以由请求行、请求头部、空行和请求数据组成。其中,请求头部由关键字/值对组成,每行一对,关键字和值用“:”分隔,用来通知服务器有关于客户端请求的信息。请求行用来描述HTTP报文,由请求方法字段、URL(Uniform Resource Location,统一资源定位符)字段和HTTP协议版本字段组成,并用空格分隔。HTTP协议请求行可以有GET、POST、HEAD等请求方法,所述请求方法描述了服务器应该执行的操作。URL字段用来描述要对哪个资源执行所述请求方法。HTTP协议版本字段用来告知服务器,客户端使用的是哪种HTTP协议。
示例性的,当客户端从服务器中读取文件时,当点击网页上的链接或者通过在浏览器的地址栏输入网址来浏览网页,使用的是GET请求方法。POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据。
步骤S420.调用所述第三方服务平台提供的消息交互接口。
生成请求报文后,可以通过调用关联的第三方服务平台提供的第三方接口,所述第三方服务平台可以包括第三方客户端及与所述第三方客户端交互通信的服务器,所述第三方接口可以是HTTP接口、HTTPS接口、WebSocket接口等。
一种示例实施方式中,可以调用第三方服务平台提供的HTTP接口。HTTP接口是基于HTTP协议的开发接口,HTTP协议又是建立在TCP(Transmission Control Protocol,传输控制协议)的基础上。例如,当浏览器需要从服务器获取网页数据的时候,会发出一次HTTP请求,可以通过TCP建立与服务器连接的通道,当本次请求需要的数据返回完毕后,会断开与TCP的连接。
步骤S430.通过所述第三方接口将所述请求报文转发到所述第三方服务平台,以使所述第三方服务平台根据所述请求报文中的文件类型,调用对应的文件生成器,生成待下载文件。
一种示例实施方式中,可以通过WebSocket接口将组装好的请求报文发送到第三方服务平台。WebSocket是一种在单个TCP连接上进行全双工通信的协议,使得客户端和服务器之间的数据交换变得更加简单,并且,允许服务器主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
此外,也可以通过HTTP接口发送该请求报文,还可以通过HTTPS接口发送请求报文。其中,HTTPS协议是以安全为目标的HTTP协议,在HTTP协议的基础上通过传输加密和身份认证保证了传输过程的安全性。另外,还加入SSL(Secure Socket Layer,安全套接层),在HTTP协议的默认端口加入一个加密/身份验证层。HTTPS系统提供了身份验证与加密通讯方法,其被广泛用于安全敏感的通讯,例如交易支付等方面。
将所述请求报文发送至第三方服务平台后,第三方服务平台响应文件下载请求,可以实时生成待下载文件。具体的,第三方服务平台可以根据该请求报文中的信息生成待下载文件。例如,可以根据所述请求报文中的文件类型,调用对应的文件生成器,其中,所述文件生成器用于将所述请求报文中的下载数据添加至文件模板中,生成待下载文件。文件模版的后缀名可以是PDF、OFD、CAJ等,获得对应的文件生成器,如文件模版的后缀名为PDF调用PDF文件生成器。第三方服务平台将获取的下载数据按照文件模板中的项目设置填写到文件模板的对应位置上,从而生成待下载文件。
在步骤S320中,接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流。
然后,可以接收第三方服务平台返回的文件流,该文件流可以由所述待下载文件转换得到,也即可以将版式文件转换为流式文件。该文件流可以是字节流,也可以是字符流。待下载文件为二进制文件时,可以以字节为单位读取该文件的内容,以形成字节序列,如可以一次读取一个字节,也可以一次读取多个字节。待下载文件为文本文件时,可以以字符为单位读取该文件的内容。另外,还可以以行为单位读取该文件的内容。
一种示例实施方式中,以字节为单位读取该文件的内容时,可以以InputStream(输入流)作为读取字节流的基类,以FileInputStream(文件字节输入流)对待下载文件以字节的形式进行读取操作。其中,可以使用int read()方法读取字节,读取第一个字节后可以返回该文件的下一个字节。当读取到待下载文件的末尾时,即没有下一个字节可以读取时,将返回值-1。还可以使用int read(byte b[])方法读取字节,如待下载文件中有102个字节,可以定义数组长度为10,即可以每次读取10个字节,最后一次读取2个字节,但是每次放入的都是10个字节的数组。还可以使用int read(byte b[],int off,int len)方法读取字节,如待下载文件中有102个字节,定义数组长度为10。但是记作read(bytes,0,9),即每次读取9个字节,最后一次读取并放入3个字节。
该方法中,接收来自第三方服务平台生成的待下载文件的字节流,不需要在本地临时写文件,而是直接将文件流转发给客户端,可以减少将待下载文件下载到本地的维护成本。
在步骤S330中,将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。
一种示例实施方式中,将字节流发送到客户端后,客户端可以将该字节流转换为待下载文件。例如,可以以OutputStream(输出流)作为写入字节流的基类,以FileOutputStream(文件字节输出流)对待下载文件以字节的形式进行写入操作。其中,可以使用void write(int b)方法写入字节,将指定的字节写入文件输出流,一次写入一个字节。还可以使用void write(byte b[])方法写入字节,如待下载文件中有102个字节,读取字节流时,可以定义数组长度为10,即可以每次读取10个字节,最后一次读取2个字节,但是每次放入的都是10个字节的数组。对应的,会写入十一次字节流,且多余8个字节。还可以使用void write(byte b[],int off,int len)方法写入字节,如待下载文件中有102个字节,读取字节流时,定义数组长度为10,记作read(bytes,0,9),即每次读取9个字节,最后一次读取并放入3个字节。对应的,会写入十二次字节流,且最后一次记作write(byte,0,3),可以准确的写入全部字节。
另外,还可以接收第三方服务平台返回的待下载文件的原始文件格式,在将所述文件流发送至客户端后,以使客户端基于该原始文件格式将文件流转换为待下载文件。
例如,在使用FileInputStream读取字节时,可以通过给定的文件名称创建FileInputStream对象,也可以使用File对象(用来表示目录)创建FileInputStream对象。文件名称和File指定的文件为输入流源,然后可以通过调用read方法读出该输入流源中的数据。因此,还可以接收第三方服务平台响应目标文件下载请求后返回的待下载文件的原始文件格式,如待下载文件的名称、待下载文件的类型等。接着,可以基于所述原始文件格式进行相应的修改,如可以在文件类型不变的基础上变更文件名称,以便于客户端根据变更的文件名称将文件流转换为待下载文件。可以理解的是,根据用户的需求,也可以保留原始文件格式中的文件名称。
对应的,在使用FileOutputStream写入字节时,可以通过给定的文件名称创建FileOutputStream对象,也可以使用File对象创建FileOutputStream对象。文件名称和File指定的文件为输出流的目的地,通过向输出流中写入数据把信息传递到目的地。如果根据文件名称写入数据时,需要保证该文件名称对应的文件和File指定的文件在同一目录下。
最后,可以将待下载文件缓存至客户端的预设存储目录中,并向客户端发送文件下载提示信息,其中,所述文件下载提示信息中可以包括所述预设存储目录对应的存储路径。例如,可以将待下载文件发送至客户端对应的下载目录中,并把文件路径填充至文件下载提示消息中,将文件下载提示信息发送至客户端。客户端接收到文件下载提示信息后,根据提示信息中的文件路径,获取对应的文件,完成文件下载。
该方法通过第三服务平台将待下载文件转换为文件流,然后将文件流直接转发给客户端,客户端将文件流接收后转换为文件保存在客户端对应的服务器中。避免了先写本地临时文件,再读取文件流将文件流传输到客户端中的重复的业务逻辑,从而节省文件下载的时间,提高了客户端文件下载速度。
一种示例实施方式中,参考图5所示,该文件处理方法还可以包括以下步骤S510至步骤S530:
步骤S510.向服务器发送文件下载请求,以使所述服务器将所述文件下载请求转发至第三方服务平台。
对应于步骤S410,客户端可以向服务器发送文件下载请求,如用户可以通过浏览器发送文件下载请求。具体的,可以通过如HTTP、HTTPS等接口发送文件下载请求。相应的,可以通过HTTP协议发送该文件下载请求,也可以通过HTTPS协议发送该文件下载请求。
服务器在接收到文件下载请求后,首先,可以组装所述文件下载请求中的请求信息,生成对应的请求报文。然后,可以调用第三方服务平台提供的如HTTP、HTTPS、WebSocket等接口。最后,可以通过所述接口将请求报文转发到第三方服务平台。
步骤S520.接收由服务器发送的文件流,所述文件流由所述第三方服务平台根据所述文件下载请求中的请求信息生成的待下载文件转换得到。
对应于步骤S420,第三方服务平台可以根据该请求报文中的信息生成待下载文件,通过读取该文件中的字节,将待下载文件转换为字节流,第三方服务平台将该字节流发送到服务器。在服务器接收第三方服务平台返回文件流后,服务器可以将该文件流转发至客户端。
步骤S530.将所述文件流转换为所述待下载文件。
接收所述字节流,客户端可以写入该字节流,将该字节流转化为待下载文件。同时,客户端可以接收服务器发送的待下载文件的文件格式,如给定的文件名称、文件类型。如果根据文件名称写入字节时,需要保证该文件名称对应的文件在指定目录下。
一种示例实施方式中,参考图6所示,该文件处理方法还可以包括以下步骤S610至步骤S650:
步骤S610.客户端发送文件下载请求至服务器;
步骤S620.所述服务器接收所述文件下载请求,并将所述文件下载请求转发至第三方服务平台;
步骤S630.所述第三方服务平台接收所述文件下载请求后,根据所述文件下载请求中的请求信息生成待下载文件,并将由所述待下载文件转换得到的文件流发送至所述服务器;
步骤S640.所述服务器接收所述文件流,并将所述文件流转发至所述客户端;
步骤S650.所述客户端接收所述文件流后,将所述文件流转换为所述待下载文件。
上述各步骤的具体细节,在步骤S310至步骤S330已经进行了详细的描述,因此此处不再赘述。
其中,第三方服务平台将待下载文件转换得到的文件流发送至服务器,可以创建文件对象,创建文件对象,相当于打开文件。通过文件对象创建文件输入流对象,即创建文件流数组。例如,可以根据待下载文件的字节长度创建字节数组。接着,可以循环读取待下载文件中的字节到字节数组,直到读完全部字节,关闭输入流。将所述字节数组中的字节发送至服务器,并由服务器转发至客户端。最后,客户端将文件流转换为待下载文件后,可以保存在本地,也可以保存在对应的服务器中。
图7示出了一种文件处理方法的流程图,以下载版式文件为例,具体过程如下:
以用户下载电子发票为例,电子发票是一种由增值税开票系统直接生成并且加盖电子签章的版式文件。保险公司和第三方建立电子发票业务合作后,保险公司可以接入第三方的保险行业电子发票服务平台。且接入服务遵循HTTP协议,并提供Web Servlet访问方式。其中Servlet是运行在Web服务器的Java小程序,可以获取并针对Web客户端的请求做出响应。一般情况下,可以通过HTTP协议进行传输通信。
步骤S710.当用户需要下载版式文件时,通过浏览器向保险公司发起下载版式文件请求。
步骤S720.保险公司接收到该请求后,组装接第三方的电子发票平台接口的请求报文,如采用XML字符串报文作为信息传输载体。
步骤S730.保险公司将该字符串报文发送至第三方的电子发票平台。
步骤S740.电子发票平台根据该字符串报文中的信息生成版式文件。
步骤S750.电子发票平台以字节流的方式将版式文件发送至保险公司。同时,发送该版式文件对应的文件名称、文件类型。
步骤S760.保险公司接收字节流后,将该字节流发送至用户。
步骤S770.保险公司根据用户的实际需求,定义接收到的版式文件的文件名称与文件类型。
步骤S780.用户接收该字节流后,根据保险公司定义的文件名称和文件类型,将该字节流转换为版式文件,完成下载,并保存。
在本公开示例实施方式所提供的文件处理方法中,通过接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件;接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流;将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。一方面,该方法将第三方服务平台返回的文件流直接发送给客户端,无需本地下载文件,从而提高客户端的文件下载速度。另一方面,由于无需本地下载文件,可以减少文件下载到本地的维护成本。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本示例实施方式中,还提供了一种文件处理装置。该装置可以应用于一服务器。参考图8所示,该文件处理装置800可以包括请求转发模块810、文件流接收模块820和文件流发送模块830,其中:
请求转发模块810,用于接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件;
文件流接收模块820,用于接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流;
文件流发送模块830,用于将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。
在一种可选的实施方式中,请求转发模块810包括:
请求报文生成模块,用于接收客户端发送的文件下载请求后,组装所述文件下载请求中的请求信息,生成对应的请求报文;
接口调用模块,用于调用所述第三方服务平台提供的消息交互接口;
请求报文发送模块,用于通过所述消息交互接口将所述请求报文发送至所述第三方服务平台,以使所述第三方服务平台根据所述请求报文中的文件类型,调用对应的文件生成器,生成待下载文件。
在一种可选的实施方式中,文件流发送模块830还包括:
文件格式发送模块,用于将所述第三方服务平台返回的所述待下载文件的原始文件格式发送至所述客户端,以使所述客户端基于所述原始文件格式将所述文件流转换为所述待下载文件。
一种示例实施方式中,还提供了另一种文件处理装置。该装置可以应用于终端设备。该文件处理装置可以包括请求发送模块、文件流接收模块和文件流转换模块,其中:
请求发送模块,用于向服务器发送文件下载请求,以使所述服务器将所述文件下载请求转发至第三方服务平台;
文件流接收模块,用于接收由服务器发送的文件流,所述文件流由所述第三方服务平台根据所述文件下载请求中的请求信息生成的待下载文件转换得到;
文件流转换模块,用于将所述文件流转换为所述待下载文件。
一种示例实施方式中,还提供了一种文件处理系统。该文件处理系统可以包括服务器、客户端和第三方服务平台,可以包括请求发送模块、请求转发模块、文件转换模块、文件流转发模块和文件流转换模块,其中:
请求发送模块,用于客户端发送文件下载请求至服务器;
请求转发模块,用于所述服务器接收所述文件下载请求,并将所述文件下载请求转发至第三方服务平台;
文件转换模块,用于所述第三方服务平台接收所述文件下载请求后,根据所述文件下载请求中的请求信息生成待下载文件,并将由所述待下载文件转换得到的文件流发送至所述服务器;
文件流转发模块,用于所述服务器接收所述文件流,并将所述文件流转发至所述客户端;
文件流转换模块,用于所述客户端接收所述文件流后,将所述文件流转换为所述待下载文件。
一种示例实施方式中,文件转换模块包括:
数组创建模块,用于创建文件流数组;
数据读取模块,用于循环读取所述待下载文件的数据,并保存至所述文件流数组;
数据发送模块,用于将所述文件流数组中的数据发送至所述服务器。
上述文件处理装置中各模块的具体细节已经在对应的文件处理方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种文件处理方法,其特征在于,包括:
接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件;
接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流;
将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。
2.根据权利要求1所述的文件处理方法,其特征在于,所述接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件,包括:
接收客户端发送的文件下载请求后,组装所述文件下载请求中的请求信息,生成对应的请求报文;
调用所述第三方服务平台提供的消息交互接口;
通过所述消息交互接口将所述请求报文发送至所述第三方服务平台,以使所述第三方服务平台根据所述请求报文中的文件类型,调用对应的文件生成器,生成所述待下载文件。
3.根据权利要求1所述的文件处理方法,其特征在于,所述将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件,还包括:
将所述第三方服务平台返回的所述待下载文件的原始文件格式发送至所述客户端,以使所述客户端基于所述原始文件格式将所述文件流转换为所述待下载文件。
4.根据权利要求1所述的文件处理方法,其特征在于,所述方法还包括:
将所述待下载文件缓存至所述客户端的预设存储目录中,并向所述客户端发送文件下载提示信息,其中,所述文件下载提示信息中包括所述预设存储目录对应的存储路径。
5.一种文件处理方法,其特征在于,包括:
向服务器发送文件下载请求,以使所述服务器将所述文件下载请求转发至第三方服务平台;
接收由服务器发送的文件流,所述文件流由所述第三方服务平台根据所述文件下载请求中的请求信息生成的待下载文件转换得到;
将所述文件流转换为所述待下载文件。
6.一种文件处理方法,其特征在于,包括:
客户端发送文件下载请求至服务器;
所述服务器接收所述文件下载请求,并将所述文件下载请求转发至第三方服务平台;
所述第三方服务平台接收所述文件下载请求后,根据所述文件下载请求中的请求信息生成待下载文件,并将由所述待下载文件转换得到的文件流发送至所述服务器;
所述服务器接收所述文件流,并将所述文件流转发至所述客户端;
所述客户端接收所述文件流后,将所述文件流转换为所述待下载文件。
7.根据权利要求6所述的文件处理方法,其特征在于,所述将由所述待下载文件转换得到的文件流发送至所述服务器,包括:
创建文件流数组;
循环读取所述待下载文件的数据,并保存至所述文件流数组;
将所述文件流数组中的数据发送至所述服务器。
8.一种文件处理装置,其特征在于,包括:
请求转发模块,用于接收客户端发送的文件下载请求,并将所述文件下载请求发送至第三方服务平台,以使所述第三方服务平台根据所述文件下载请求中的请求信息生成待下载文件;
文件流接收模块,用于接收所述第三方服务平台返回的由所述待下载文件转换得到的文件流;
文件流发送模块,用于将所述文件流发送至所述客户端,以使所述客户端将所述文件流转换为所述待下载文件。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011496136.8A CN113824756A (zh) | 2020-12-17 | 2020-12-17 | 文件处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011496136.8A CN113824756A (zh) | 2020-12-17 | 2020-12-17 | 文件处理方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113824756A true CN113824756A (zh) | 2021-12-21 |
Family
ID=78924883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011496136.8A Pending CN113824756A (zh) | 2020-12-17 | 2020-12-17 | 文件处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113824756A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115103002A (zh) * | 2022-06-20 | 2022-09-23 | 中国银行股份有限公司 | 数据交互方法、装置及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835856A (zh) * | 2020-07-17 | 2020-10-27 | 北京百度网讯科技有限公司 | 文件下载的方法、装置、设备以及存储介质 |
-
2020
- 2020-12-17 CN CN202011496136.8A patent/CN113824756A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835856A (zh) * | 2020-07-17 | 2020-10-27 | 北京百度网讯科技有限公司 | 文件下载的方法、装置、设备以及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115103002A (zh) * | 2022-06-20 | 2022-09-23 | 中国银行股份有限公司 | 数据交互方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4363847B2 (ja) | インタラクティブ・テレビ用のデジタル・テレビ・アプリケーション・プロトコル | |
US7870482B2 (en) | Web browser extension for simplified utilization of web services | |
US7260777B2 (en) | Apparatus, method and system for transforming data | |
US8418056B2 (en) | Method and apparatus for checkout transition in an e-commerce application | |
US8069451B2 (en) | System and method of compact messaging in network communications by removing tags and utilizing predefined message definitions | |
JP5050055B2 (ja) | モバイルデバイスユーザ経験の仮想化 | |
US11153365B2 (en) | Transfer of files with arrays of strings in soap messages | |
CN113382083B (zh) | 一种网页截图方法和装置 | |
US9906626B2 (en) | Resource demand-based network page generation | |
CN106095598B (zh) | 一种数据处理方法及客户端 | |
US20030105806A1 (en) | Service facilitator for automating object conversions and communication connections in client-server systems | |
CN101771928B (zh) | 一种网页发送方法和系统以及代理服务器 | |
CN110704200A (zh) | 转换调用接口的方法和装置 | |
CN113467775A (zh) | 一种生成页面的方法和装置 | |
CN113824756A (zh) | 文件处理方法、装置、存储介质及电子设备 | |
CN108600378A (zh) | 一种文件下载方法、装置、终端和存储介质 | |
Gaitatzis | Learn REST APIs | |
US7003584B1 (en) | Apparatus and method for accessing request header information using a transcoding filter servlet | |
CN113064563A (zh) | 基于区块链的打印方法 | |
CN112580975A (zh) | 业务流程处理方法和装置 | |
CN112749353A (zh) | 网页图标的处理方法和装置 | |
CN113852666B (zh) | 一种通过ftp协议实时获取http资源的方法 | |
US8738049B1 (en) | Converged dialog in hybrid mobile applications | |
CN113497821A (zh) | 一种上传文件的方法、装置和系统 | |
CN110019030B (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 |