对于CSV数据,Zlib.Gunzip“输入缓冲区是否已损坏”?

时间:2017-05-03 20:32:41

标签: javascript vb.net zlib

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

一切都与XLS文件一起游戏 - 我正在使用NPOI库.NET,它有自己的方法将我的Excel工作簿的内容写入CompressionStream,我已经设法让这个工作在后面和前端。

但是,对于我用于XLS的CSV使用相同的方法,在尝试解压缩客户端数据时,我收到标题中提到的错误:“输入缓冲区已损坏”。唯一的区别是NPOI不处理CSV,所以我使用StreamWriter通过GZipStream(在System.IO.Compression库中)而不是NPOI的Write方法写入数据。我已粘贴下面的相关代码。从下面可以看出,在处理这两种不同的格式时,我做错了什么或需要做些什么呢?

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

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

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

var decompressed = (new Zlib.Gunzip(Uint8Array.from(parameters.data))).decompress()

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

0 个答案:

没有答案