Base64字符串压缩

时间:2009-09-03 18:21:26

标签: asp.net javascript

我有一个ActiveX控件,它将指纹设备中的图像作为base64字符串。 Active工作得很好,我可以将返回的base64字符串传输到服务器,转换为二进制数据,然后保存到数据库。我使用ASP.NET作为服务器端技术和JavaScript作为客户端技术。问题是base64字符串是工具大的,字符串传输到服务器需要30到40秒。我的问题是:有没有办法在客户端(浏览器)上压缩这个base64字符串并将其放回服务器上。

3 个答案:

答案 0 :(得分:4)

如果base64图像实际上是jpeg或其他压缩图像格式,我不希望你首先能够从中获得额外的压缩。您还需要找到一种以便携方式发布二进制压缩数据的方法,这可能不是非常容易。 (你可以假装它是一个文件或类似的东西。)

这张图片有多大? 30秒是很长的一段时间......

答案 1 :(得分:1)

在我的linux系统上,使用bzip2实用程序(使用burrows-wheeler转换然后压缩),我将Base64中编码的jpg从259.6KB减少到194.5KB。

使用gzip(使用某种LZ算法),我把它减少到194.4KB。

所以,是的,你可以压缩它。问题是你为什么要这样做?听起来好像你的问题确实存在于其他地方。

答案 2 :(得分:1)

Base64是一种通常仅用于绕过发送二进制数据的技术限制的格式。例如,可以在GET请求中使用base64字符串,例如“website.com/page?q=BASE64ENCODED”。

您有两种选择:

了解如何在POST请求中发送/接收二进制数据,然后以不同的形式发送数据并在服务器上进行适当的转换。 -要么- 由于这是一个指纹设备,我假设您将其用作密码,因此您实际上不必每次都发送原始指纹数据。只需对其进行SHA-1哈希,并将其与服务器上存储的哈希值进行比较。这同样安全,只需几分之一秒即可上传。

希望我帮忙!