System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及流式传输,特别是涉及一种文件流式下载方法、系统、设备及程序产品。
技术介绍
1、在现有的传统文件下载方式中,浏览器通常会采用内存缓存和硬盘写入的方式处理文件下载,当用户点击下载链接时,浏览器会先将文件下载到内存中,然后再写入到硬盘上的指定位置。这种方法能够确保文件下载的完整性和安全性,但对于大文件来说,此种方法会导致显著的内存占用和较长的加载延迟,特别是在内存资源有限的情况下,可能会影响其他应用程序的性能。
2、现有的文件下载方法可能会给用户带来不便,影响用户体验的几个方面包括:1、内存占用问题:特别是处理大文件时,浏览器可能会占用大量内存,导致系统性能下降或者其他程序运行受限。2、加载延迟:大文件需要更长的时间下载和处理,用户可能需要等待较长的时间才能访问或使用文件。3、直接展示文件:有时用户希望下载文件到本地而非在浏览器中直接打开,因此直接展示文件可能会导致误解或者不符合用户预期。
3、因此,亟待专利技术一种文件流式下载方法,以解决因文件过大而导致的下载性能问题,提高下载效率,并减少对系统资源的占用。
技术实现思路
1、有鉴于此,本专利技术实施例提供一种文件流式下载方法、系统、设备及程序产品,至少部分解决现有技术中存在的问题。
2、本专利技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本专利技术的实践而习得。
3、为了实现上述目的,本专利技术实施例提供如下技术方案:
4、根据本专利技术实施例
5、通过前端的fetch-api向文件服务器发送用户下载请求,根据返回的待下载文件的文件路径,将文件服务器中的待下载文件流式下载至前端创建的可写流中;
6、利用前端的zip实例对可写流中的文件进行压缩并实时存储于用户硬盘。
7、进一步地,根据返回的待下载文件的文件路径,将文件服务器中的待下载文件流式下载至前端创建的可写流中,利用前端的zip实例对可写流中的文件进行压缩并实时存储于用户硬盘,包括:
8、利用streamsaver.js的createwritestream方法,在前端创建所述待下载文件对应的可写流;
9、根据待下载文件对应的文件路径,利用fectch方法访问待下载文件对应的url,将待下载文件流式下载至所述可写流中;
10、针对所述待下载文件,在前端利用zip-stream创建对应的zip实例;
11、利用所述zip实例持续接收所述可写流中下载的文件并将zip实例中的数据存储于用户硬盘;
12、待所述待下载文件所有数据完成下载,则执行close方法将zip实例打包为压缩包。
13、根据本专利技术实施例的第二方面,提供了一种文件下载方法,所述方法包括:
14、通过前端向文件服务器发送用户下载请求;
15、若所述下载请求为通过前端的fetch-api发送的下载请求,则获取待下载文件信息;
16、基于所述待下载文件信息,获取待下载文件对应的文件路径;
17、根据所述文件路径,将文件服务器中的待下载文件流式下载至前端创建的可写流中;
18、利用前端的zip实例对可写流中的文件进行压缩并实时存储于用户硬盘。
19、进一步地,所述方法还包括:
20、若所述下载请求不为通过前端的fetch-api发送的下载请求,则直接在后端下载待下载文件。
21、进一步地,基于所述待下载文件信息,获取待下载文件对应的文件路径,包括:
22、根据所述待下载文件信息,判断所述待下载文件大小是否大于预设文件大小阈值;
23、若所述待下载文件大小大于预设文件大小阈值,则引导pc客户端下载所述待下载文件;
24、若所述待下载文件大小小于或等于预设文件大小阈值,则获取待下载文件对应的第一路径;
25、对所述第一路径进行路径解密处理,得到解密后的第二路径。
26、进一步地,根据所述文件路径,将文件服务器中的待下载文件流式下载至前端创建的可写流中,利用前端的zip实例对可写流中的文件进行压缩并实时存储于用户硬盘包括:
27、利用streamsaver.js的createwritestream方法,在前端创建所述待下载文件对应的可写流;
28、根据待下载文件对应的文件路径,利用fectch方法访问待下载文件对应的url,将待下载文件流式下载至所述可写流中;
29、针对所述待下载文件,在前端利用zip-stream创建对应的zip实例;
30、利用所述zip实例持续接收所述可写流中下载的文件并将zip实例中的数据存储于用户硬盘;
31、待所述待下载文件所有数据完成下载,则执行close方法将zip实例打包为压缩包。
32、根据本专利技术实施例的第三方面,提供了一种文件流式下载系统,所述系统包括:
33、请求发送模块,用于通过前端的fetch-api向文件服务器发送用户下载请求;
34、流式下载模块,用于根据返回的待下载文件的文件路径,将文件服务器中的待下载文件流式下载至前端创建的可写流中;
35、压缩存储模块,用于利用前端的zip实例对可写流中的文件进行压缩并实时存储于用户硬盘。
36、根据本专利技术实施例的第四方面,提供了一种文件下载系统,所述系统包括:
37、下载请求发送模块,用于通过前端向文件服务器发送下载请求;
38、文件信息获取模块,用于若所述下载请求为用户通过前端的fetch-api发送的下载请求,则获取待下载文件信息;
39、文件路径获取模块,用于基于所述待下载文件信息,获取待下载文件对应的文件路径;
40、流式下载模块,用于根据所述文件路径,将文件服务器中的待下载文件流式下载至前端创建的可写流中;
41、压缩存储模块,用于利用前端的zip实例对可写流中的文件进行压缩并实时存储于用户硬盘。
42、根据本专利技术实施例的第五方面,提供了一种文件下载设备,所述设备包括:处理器和存储器;
43、所述存储器用于存储一个或多个程序指令;
44、所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种文件流式下载方法或一种文件下载方法的步骤。
45、根据本专利技术实施例的第四方面,提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使该计算机实现如上任一项所述的一种文件流式下载方法或一种文件下载方法的步骤。
46、本专利技术实施例具有如下优点:
47、本专利技术实施例提供的一种文件流式下载方法、系统、设备及程序产品,方法包括:通过前端的fetch-api本文档来自技高网...
【技术保护点】
1.一种文件流式下载方法,其特征在于,所述方法包括:
2.如权利要求1所述的一种文件流式下载方法,其特征在于,根据返回的待下载文件的文件路径,将文件服务器中的待下载文件流式下载至前端创建的可写流中,利用前端的ZIP实例对可写流中的文件进行压缩并实时存储于用户硬盘,包括:
3.一种文件下载方法,其特征在于,所述方法包括:
4.如权利要求3所述的一种文件下载方法,其特征在于,所述方法还包括:
5.如权利要求3所述的一种文件下载方法,其特征在于,基于所述待下载文件信息,获取待下载文件对应的文件路径,包括:
6.如权利要求3所述的一种文件下载方法,其特征在于,根据所述文件路径,将文件服务器中的待下载文件流式下载至前端创建的可写流中,利用前端的ZIP实例对可写流中的文件进行压缩并实时存储于用户硬盘包括:
7.一种文件流式下载系统,其特征在于,所述系统包括:
8.一种文件下载系统,其特征在于,所述系统包括:
9.一种文件下载设备,其特征在于,所述设备包括:处理器和存储器;
10.一种计
...【技术特征摘要】
1.一种文件流式下载方法,其特征在于,所述方法包括:
2.如权利要求1所述的一种文件流式下载方法,其特征在于,根据返回的待下载文件的文件路径,将文件服务器中的待下载文件流式下载至前端创建的可写流中,利用前端的zip实例对可写流中的文件进行压缩并实时存储于用户硬盘,包括:
3.一种文件下载方法,其特征在于,所述方法包括:
4.如权利要求3所述的一种文件下载方法,其特征在于,所述方法还包括:
5.如权利要求3所述的一种文件下载方法,其特征在于,基于所述待下载文件信息,获取待下载文件对应的文件路径,包括:
6.如权利要求3所述的一种文件下...
【专利技术属性】
技术研发人员:王重凯,武文杰,
申请(专利权)人:用友网络科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。