Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Base64字符串压缩_Asp.net_Javascript - Fatal编程技术网

Asp.net Base64字符串压缩

Asp.net Base64字符串压缩,asp.net,javascript,Asp.net,Javascript,我有一个ActiveX控件,它从指纹设备获取一个图像作为base64字符串。活动的工作原理很好,我可以将返回的base64字符串传输到服务器,转换为二进制数据,然后保存到数据库中。我使用ASP.NET作为服务器端技术,使用JavaScript作为客户端技术。问题是base64字符串太大,需要30到40秒才能传输到服务器。我的问题是:有没有办法在客户端(浏览器)上压缩这个base64字符串,然后在服务器上重新压缩它 如果base64图像真的是jpeg或其他压缩图像格式,我不希望您能够从中获得更多的

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

如果base64图像真的是jpeg或其他压缩图像格式,我不希望您能够从中获得更多的额外压缩。您还需要找到一种方法,在事后以可移植的方式发布二进制压缩数据,这可能不太容易。(您可以假装它是一个文件或类似的东西。)


这个图像有多大?30秒是很长的时间…

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

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


所以,是的,你可以压缩它。问题是你为什么要这么做?听起来好像你的问题真的在别处。

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

您有两个选择:

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


希望我能帮忙

指纹设备的图像太大?还是带宽问题?base64字符串有多大?ActiveX控件是第三方还是您自己创建的?您可以选择更改它的工作方式吗?通过base64解码,您将节省25%的成本。JavaScript base64代码随时可用。base64不是压缩。它只是一种仅使用64个可打印ASCII字符对任何字节进行编码的编码。因此,这与压缩相反。我有一个应用程序,它将大约150kb的base64编码数据从客户端发送到服务器,转换成二进制文件,通过计算引擎发送,结果处理回base64,并在不到一秒钟内返回到客户端。为什么是30-40秒?您使用什么技术传输数据?