基于教育系统的base64编码转换方法及电子设备与流程

文档序号:16935379发布日期:2019-02-22 20:39阅读:205来源:国知局
基于教育系统的base64编码转换方法及电子设备与流程

本发明涉及计算机技术领域,尤其涉及一种基于教育系统的base64编码转换方法及电子设备。



背景技术:

在web应用大行其道的今天,webapp已经逐步脱离传统web开发模式,逐步转向专业化,工具化,向web开发的新兴领域一步步深入。其中一个方向就是数据持久化和web前端项目的结合,现有技术中都通过从服务器拉取数据的b/s模式来进行开发,但现在的开发作为c/s架构的模式,需要在本地有一些持久化和灵活传输的需求,也就是针对于数据编码和传输的需求,然而这并没有被会议提案和浏览器厂商足够重视,也就是说,目前的web数据传输工具其还不够高效和灵活。例如在教育领域,web数据传输的操作非常常见,所以急需一种能够提高web数据传输效率和灵活性的方案。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于上述现有技术的不足,本发明的目的在于提供一种基于教育系统的base64编码转换方法及电子设备,旨在解决目前的web数据传输工具其还不够安全和高效的问题。

本发明的技术方案如下:

一种基于教育系统的base64编码转换方法,其中,包括步骤:

a、获取base64编码文件,并将所述base64数据解码为二进制字符串;

b、读取所述二进制字符串,并将所述二进制字符串转换为uint8数组;

c、通过blob构造函数将uint8数组构造为blob文件。

所述的基于教育系统的base64编码转换方法,其中,所述步骤a具体包括:

a1、获取base64编码文件;

a2、将所述base64编码文件转换为二进制字符串;

a3、对所述二进制字符串进行切片。

所述的基于教育系统的base64编码转换方法,其中,所述步骤b具体包括:

b1、将切片得到的各二进制字符串转换为子uint8数组;

b2、将各子uint8数组进行组合,得到uint8数组。

所述的基于教育系统的base64编码转换方法,其中,所述步骤a2具体包括:

a21、判断所述base64编码文件的切片大小信息是否存在,若是则直接将所述base64编码文件转换为二进制字符串,若否则转入步骤a22;

a22、设置切片大小,并将所述base64编码文件转换为二进制字符串。

所述的基于教育系统的base64编码转换方法,其中,所述切片大小为128b。

所述的基于教育系统的base64编码转换方法,其中,所述步骤b1中,通过charcodeat方法读取各二进制字符串中每个字节的字节值,并构造为字符值数组,再将字符值数组转为子uint8数组。

所述的基于教育系统的base64编码转换方法,其中,所述步骤a2中,通过window.atob将所述base64编码文件转换为二进制字符串。

一种电子设备,其中,包括:

处理器,适于实现各指令,以及

存储设备,适于存储多条指令,所述指令适于由处理器加载并执行:

获取base64编码文件,并将所述base64数据解码为二进制字符串;

读取所述二进制字符串,并将所述二进制字符串转换为uint8数组;

通过blob构造函数将uint8数组构造为blob文件。

一种非易失性计算机可读存储介质,其中,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的基于教育系统的base64编码转换方法。

一种计算机程序产品,其中,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的基于教育系统的base64编码转换方法。

有益效果:通过本发明,将所需传输的base64编码文件先解码为二进制字符串,然后转换为uint8数组,再通过blob构造函数构造为blob文件,其传输效率高效,且容易控制,便于灵活处理。

附图说明

图1为本发明一种基于教育系统的base64编码转换方法较佳实施例的流程图。

图2为本发明一种电子设备较佳实施例的结构框图。

具体实施方式

本发明提供一种基于教育系统的base64编码转换方法及电子设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参阅图1,图1为本发明一种基于教育系统的base64编码转换方法较佳实施例的流程图,其包括步骤:

s1、获取base64编码文件,并将所述base64数据解码为二进制字符串;

s2、读取所述二进制字符串,并将所述二进制字符串转换为uint8数组;

s3、通过blob构造函数将uint8数组构造为blob文件。

通过本发明,将所需传输的base64编码文件先解码为二进制字符串,然后转换为uint8数组,再通过blob构造函数构造为blob文件,其传输效率高效,且容易控制,便于灵活处理。

在所述步骤s1中,先对获取到的base64编码文件,然后将所述base64数据解码为二进制字符串。

base64是用于传输8bit字节码的编码方式之一,base64就是一种基于64个可打印字符来表示二进制数据的方法。base64编码是从二进制到字符的过程,可用于在http环境下传递较长的标识信息。例如,在javapersistence系统hibernate中,就采用了base64来将一个较长的唯一标识符(一般为128-bit的uuid)编码为一个字符串,用作http表单和httpgeturl中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在url(包括隐藏表单域)中的形式。此时,采用base64编码具有不可读性,需要解码后才能阅读。

具体地,所述步骤s1包括:

s11、获取base64编码文件;

s12、将所述base64编码文件转换为二进制字符串;

s13、对所述二进制字符串进行切片。

在所述步骤s11中,首先获取一段即将被处理的base64编码,例如它可以是一个音频文件,并以base64编码的格式存储,用于传输和音频播放和处理。如果它不是一段base64编码,则无需进行处理。

在所述步骤s12中,将所述base64编码文件转换为二进制字符串。

具体可通过window.atob将所述base64编码文件转换为二进制字符串。

window.atob方法是原生提供的一个用于将ascii码转为二进制格式(通常为字符串)的一种函数,由于base64编码由ascii码组成,所以它就可以用来将base64解码成对应字符串。当然在本发明的一个具体应用场景中,被编码的是音频,所以对应的二进制格式的对象是音频。

在所述步骤s13中,对所述二进制字符串进行切片。

使用切片的原因是避免大文件爆内存以及使得读取效率更加高。

同时本发明为切片大小依据实际经验设定为512,也就是会切下128b的数据。即所述切片大小为128b,其既可提高读取效率,又可提高操作效率。

切片操作可以从一个字符串中获取子字符串(字符串的一部分)。具体使用一对方括号、起始偏移量start、终止偏移量end以及可选的步长step来定义一个分片。

格式:[start:end:step]

[:]表示提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串。

[start:]表示从start提取到结尾。

[:end]表示从开头提取到end-1。

[start:end]表示从start提取到end-1。

[start:end:step]表示从start提取到end-1,每step个字符提取一个。

左侧第一个字符的位置/偏移量为0,右侧最后一个字符的位置/偏移量为-1。

进一步,所述步骤s12具体包括:

s121、判断所述base64编码文件的切片大小信息是否存在,若是则直接将所述base64编码文件转换为二进制字符串,若否则转入步骤a22;

s122、设置切片大小,并将所述base64编码文件转换为二进制字符串。

也就是说,切片构造只是基于程序效率和安全性的考虑,如果在切片大小信息已经存在的情况下,则直接将其转换为二进制字符串,并转uint8构造blob文件对象。而如果切片大小信息不存在的情况下,则可先设置切片大小,然后再转换二进制字符串。

在所述步骤s2中,读取所述二进制字符串,并将所述二进制字符串转换为uint8数组。

进一步,所述步骤s2具体包括:

s21、将切片得到的各二进制字符串转换为子uint8数组;

s22、将各子uint8数组进行组合,得到uint8数组。

在所述步骤s21,通过charcodeat方法读取各二进制字符串中每个字节的字节值,并构造为字符值数组,再将字符值数组转为子uint8数组。charcodeat()方法可返回指定位置的字符的unicode编码。这个返回值是0-65535之间的整数。字符串中第一个字符的位置为0,第二个字符位置为1,以此类推。

方法charcodeat()与charat()方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。

charcodeat()的方法如下:

string.charcodeat(index)

参数index,必需。表示字符串中某个位置的数字,即字符在字符串中的下标。

在所述步骤s22中,将所有切片生成的字节值数组拼接起来,就得到uint8数组。

在所述步骤s3中,通过blob构造函数将uint8数组构造为blob文件。这样就构造了blob文件对象,就可以实现对这段音频的传输和控制了。

blob(binarylargeobject),二进制大对象,是一个可以存储二进制文件的容器。

在计算机中,blob常常是数据库中用来存储二进制文件的字段类型。

blob是一个大文件,典型的blob是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。

blob构造函数:

varblob=newblob(array[optional],options[optional]);

array(可选):一个数组。数组元素可以是:arraybuffer、arraybufferview、blob、domstring.或者他们的组合。

options(可选):一个对象。用于指定blob对象的属性,可选的参数有:

type:content-type,用于指定将要放入blob中的数据的类型(mime)。

blob对象的基本属性有:

size:blob对象包含的字节数。type:blob对象包含的数据类型mime,如果类型未知则返回空字符串。

本发明首先要获得base64的输入,之后由atob方法获得最初的二进制格式数据,接着通过不断地转为字符值、字符值转uint8再将uint8塞入大数组,从而构造uint8数组用以创建blob文件。

本发明基于typescript编程语言来实现,在函数的入口通过设置恰当的接口保证传入数据的一致性、得益于块级作用域的实现,本发明无需担心大文件带来的内存溢出的危险、保证了输出对象的准确,而且业务对接时的接口检查也会进一步降低应用崩溃的概率。

本发明还提供一种电子设备10,如图2所示,其包括:

处理器110,适于实现各指令,以及

存储设备120,适于存储多条指令,所述指令适于由处理器110加载并执行:

获取base64编码文件,并将所述base64数据解码为二进制字符串;

读取所述二进制字符串,并将所述二进制字符串转换为uint8数组;

通过blob构造函数将uint8数组构造为blob文件。

所述处理器110可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acornriscmachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器还可以是任何传统处理器、微处理器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp核、任何其它这种配置。

存储设备120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的基于教育系统的base64编码转换方法对应的程序指令。处理器通过运行存储在存储设备中的非易失性软件程序、指令以及单元,从而执行基于教育系统的base64编码转换方法的各种功能应用以及数据处理,即实现上述方法实施例。

关于上述电子设备10的具体技术细节在前面的方法中已有详述,故不再赘述。

本发明还提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行所述的基于教育系统的base64编码转换方法。

本发明还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行所述的基于教育系统的base64编码转换方法。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1