Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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
Javascript Zlib.Gunzip“;“输入缓冲区已损坏”;对于CSV数据?_Javascript_Vb.net_Zlib - Fatal编程技术网

Javascript Zlib.Gunzip“;“输入缓冲区已损坏”;对于CSV数据?

Javascript Zlib.Gunzip“;“输入缓冲区已损坏”;对于CSV数据?,javascript,vb.net,zlib,Javascript,Vb.net,Zlib,我正在编写一个实用程序,用于下载服务器上生成的Excel文件,然后发送到客户端。我们必须同时处理XLS和CSV文件。我被要求在服务器上压缩这些文件,然后在客户机上解压缩,为此我决定使用库 XLS文件一切都进行得很顺利——我正在使用.NET的NPOI库,它有自己的方法将Excel工作簿的内容写入压缩流,我已经设法在后端和前端完成了这项工作 然而,使用与XLS相同的CSV方法,在尝试在客户端解压数据时,我得到了标题中提到的错误:“输入缓冲区已损坏”。唯一的区别是NPOI不处理CSV,因此我使用Str

我正在编写一个实用程序,用于下载服务器上生成的Excel文件,然后发送到客户端。我们必须同时处理XLS和CSV文件。我被要求在服务器上压缩这些文件,然后在客户机上解压缩,为此我决定使用库

XLS文件一切都进行得很顺利——我正在使用.NET的NPOI库,它有自己的方法将Excel工作簿的内容写入压缩流,我已经设法在后端和前端完成了这项工作

然而,使用与XLS相同的CSV方法,在尝试在客户端解压数据时,我得到了标题中提到的错误:“输入缓冲区已损坏”。唯一的区别是NPOI不处理CSV,因此我使用StreamWriter通过GZipStream(在System.IO.Compression库中)写入数据而不是NPOI的写入方法。我已将相关代码粘贴到下面。从下面来看,我做错了什么,或者在处理这两种不同的格式时需要做什么

服务器端代码(VB.NET):

这是抛出“输入缓冲区已损坏”错误的JS代码:


(其中parameters.data是从服务器发送的字节列表)

我将把它作为注释而不是答案,因为我的解决方案实际上不是对手头问题的答案。我最终在切换到另一个zlib端口,它能够毫无问题地处理相同的数据。所以我不知道我对另一个zlib库做了什么错误,但我至少能够解决潜在的问题。对我来说也是如此。。。。我用了pako,一切都很好。。我将把它作为一个评论而不是一个答案,因为我的解决方案实际上并不是对手头问题的答案。我最终在切换到另一个zlib端口,它能够毫无问题地处理相同的数据。所以我不知道我对另一个zlib库做了什么错误,但我至少能够解决潜在的问题。对我来说也是如此。。。。我用了pako,一切都很好。。
Public Shared Function CompressCSVString(ByVal CSV As String) As List(Of Byte)
    Dim outStream As New MemoryStream()
    Dim compressionStream As New GZipStream(outStream, CompressionLevel.Optimal)
    Dim writer As New StreamWriter(compressionStream)
    writer.Write(CSV)

    Return outStream.ToArray().ToList()
End Function
var decompressed = (new Zlib.Gunzip(Uint8Array.from(parameters.data))).decompress()