System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于文件传输领域,具体而言,涉及一种基于io流的文件传输方法及装置。
技术介绍
1、两碳即碳达峰与碳中和的简称,在两碳的大背景下,光伏行业蓬勃发展,为提高运维效率,加入无人机巡检,智能识别故障;因此需要大量拍摄图片、视频存储。现有技术中,文件上传大部分是直接将文件存储到服务器,存在以下问题:1、上传超时(大文件上传时间会超出前端框架、网关代理设置的请求时间);2、大文件压缩超时;3、大小超限制(超出默认的文件大小上限);4、当遇到文件过大,或者网络延迟等问题时,就会上传失败,且上传失败后需要将整个文件重新上传,效率低且可能一直上传失败。
技术实现思路
1、本申请提供了一种基于io流的文件传输方法及装置,解决了无人机拍摄的图片、视频上传超时,大小超出限制,上传速度慢等问题。
2、第一方面,本申请提供了一种基于io流的文件传输方法,包括:
3、s101,生成压缩文件,所述压缩文件包括待传输的视频和/或图片;
4、s103,根据预设的分片大小对所述压缩文件进行切片;
5、s105,根据分片后的文件输出所述压缩文件的md5值;
6、s107,将所述压缩文件的md5值发送给服务器,所述服务器查询数据库文件表是否存在相同的md5值,如果存在,停止上传压缩文件;如果不存在,执行以下步骤;
7、s109,将分片文件信息发送给服务器做校验,通过校验,只上传未上传的分片。
8、其中,s101,生成压缩文件,所
9、通过jszip获取zip对象,向zip对象中添加视频和/或图片,通过generateasync来生成压缩文件。
10、其中,s103,根据预设的分片大小对所述压缩文件进行切片,包括:
11、预设分片大小,根据分片大小来对压缩文件进行切片,如果压缩文件小于等于预设分片大小,则不进行切片,否则继续调用切片算法直到切片文件小于等于预设分片大小,停止切割。
12、其中,s105,根据分片后的文件输出所述压缩文件的md5值,包括:
13、将分片后的文件逐个传入spark.appendbinary方法来计算,最后通过spark.end方法输出md5值。
14、其中,s109,将分片文件信息发送给服务器做校验,通过校验,只上传未上传的分片,包括:
15、将分片文件信息发送给服务器做校验,分片文件信息包括文件名、文件大小、分片总数量、分片编号、分片内容;
16、服务器通过分片编号和md5值来判断该分片是否上传过,并告知前端,如果上传过,前端不再上传该分片,如果没有上传过,则上传该分片。
17、其中,还包括:
18、服务器保存上传的分片信息至分片表;
19、服务器通过数据库已存在的分片数量和分片总数做对比,如果一致则认为压缩文件上传完毕,将md5值一致的分片拿出来,通过分片编号来排序,按照排序结果合并文件。
20、其中,还包括:文件合并后写入文件表,文件表中记录文件信息及md5值。
21、其中,所述分片编号为文件名哈希值加分片的索引下标。
22、第二方面,本申请提供了一种基于io流的文件传输装置,包括:
23、生成单元,用于生成压缩文件,所述压缩文件包括待传输的视频和/或图片;
24、切片单元,用于根据预设的分片大小对所述压缩文件进行切片;
25、md5值单元,用于根据分片后的文件输出所述压缩文件的md5值;
26、查询单元,用于将所述压缩文件的md5值发送给服务器,查询服务器的数据库文件表是否存在相同的md5值,如果存在,停止上传压缩文件;如果不存在,执行以下步骤;
27、上传单元,用于将分片文件信息发送给服务器做校验,通过校验,只上传未上传的分片。
28、第三方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
29、本申请基于io流的文件传输方法及装置具有如下有益效果:
30、本申请提升了文件上传速度,即使是分片上传失败,也只需要上传失败的分片,无需上传整个文件,为无人机拍摄的图片、视频传输存储做出了保障。
本文档来自技高网...【技术保护点】
1.一种基于IO流的文件传输方法,其特征在于,包括:
2.根据权利要求1所述基于IO流的文件传输方法,其特征在于,S101,生成压缩文件,所述压缩文件包括待传输的视频和/或图片,包括:
3.根据权利要求1或2所述基于IO流的文件传输方法,其特征在于,S103,根据预设的分片大小对所述压缩文件进行切片,包括:
4.根据权利要求1或2所述基于IO流的文件传输方法,其特征在于,S105,根据分片后的文件输出所述压缩文件的MD5值,包括:
5.根据权利要求1或2所述基于IO流的文件传输方法,其特征在于,S109,将分片文件信息发送给服务器做校验,通过校验,只上传未上传的分片,包括:
6.根据权利要求1或2所述基于IO流的文件传输方法,其特征在于,还包括:
7.根据权利要求1或2所述基于IO流的文件传输方法,其特征在于,还包括:文件合并后写入文件表,文件表中记录文件信息及MD5值。
8.根据权利要求6所述基于IO流的文件传输方法,其特征在于,所述分片编号为文件名哈希值加分片的索引下标。
9.一种
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现所述权利要求1-8中任一项所述方法的步骤。
...【技术特征摘要】
1.一种基于io流的文件传输方法,其特征在于,包括:
2.根据权利要求1所述基于io流的文件传输方法,其特征在于,s101,生成压缩文件,所述压缩文件包括待传输的视频和/或图片,包括:
3.根据权利要求1或2所述基于io流的文件传输方法,其特征在于,s103,根据预设的分片大小对所述压缩文件进行切片,包括:
4.根据权利要求1或2所述基于io流的文件传输方法,其特征在于,s105,根据分片后的文件输出所述压缩文件的md5值,包括:
5.根据权利要求1或2所述基于io流的文件传输方法,其特征在于,s109,将分片文件信息发送给服务器做校验,...
【专利技术属性】
技术研发人员:袁泽军,赵二保,
申请(专利权)人:安徽尚特杰电力技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。