2014-12-04 62 views
0

我正在SAP Web IDE中使用Northwind服务。此服务中的图像以base64字符串格式存储:FRwvAAIAAAAN....JavaScript:从图像中删除字节(base64字符串)

我发现我无法直接使用这些图像在我的应用程序中,使用给定的base64字符串值,因为Northwind DB在MS Access中是旧的,并且有78个冗余字节表示OLE头。所以我想从base64字符串中删除这78个字节。

您能否帮助我,使用JavaScript语言(我是这个语言的新手)。我希望你的专家。这是我做了什么:

我创建功能:

photo : function (value) { var str = ""; for (var p in value) { if (value.hasOwnProperty(p)) { str += value[p]; } } ..........

有了这个功能,我服用的base64斯汀作为导入参数。我将该导入参数从对象转换为字符串。

那么接下来我该怎么做?创建数组或其他东西?我如何从字符串中删除78个BYTES?

回答

0

在base64中,每个字符包含六位信息,所以四个字符包含24位信息,即三个字节。

你很幸运。由于78恰好可以被3整除,所以前78个字节与前104个字符完全对应(78字节= 624位= 104个字符)。

因此,除去第一字节78一个base64字符串,删除第104个字符:

s = s.substr(104); 

(如果你没有那么幸运了,你将不得不将整个字符串解码转换成字节,删除前78个字节,再将字节编码成字符串。)

+0

你是天才。 :)非常感谢,104个字符是解决我的问题的关键,我使用'str = str.slice(104)'将它们删除;'现在照片是可见的。谢谢! – Kristaps 2014-12-09 10:01:26