Получите изображение, сохраненное в vb.net и ICSharpCode.SharpZipLib.Zip.ZipInputStream в PHP - PullRequest
0 голосов
/ 19 февраля 2019

Я застрял при интеграции данных, созданных в VB.net, в новое приложение php.

У меня есть две функции для сжатия и распаковки данных (например, изображения):

''' <summary>
''' Compress data into zip
''' </summary>
''' <param name="bin">input byte array</param>
''' <returns>output byte array</returns>
''' <remarks></remarks>
Public Shared Function CompressData(ByVal bin() As Byte) As Byte()
    Dim buffer(1024 * 4 - 1) As Byte

    Dim mout As New System.IO.MemoryStream()
    Using zout As New ICSharpCode.SharpZipLib.Zip.ZipOutputStream(mout)
        zout.SetLevel(9)
        Using min As New System.IO.MemoryStream(bin)
            Dim zentry As New ICSharpCode.SharpZipLib.Zip.ZipEntry(String.Empty)
            zout.PutNextEntry(zentry)
            ICSharpCode.SharpZipLib.Core.StreamUtils.Copy(min, zout, buffer)
        End Using
        zout.Finish()
    End Using

    Return mout.ToArray()
End Function

''' <summary>
''' Uncompress data from zip
''' </summary>
''' <param name="bin">input byte array</param>
''' <returns>output byte array</returns>
''' <remarks></remarks>
Public Shared Function DecompressData(ByVal bin() As Byte) As Byte()
    Dim buffer(1024 * 4 - 1) As Byte

    Dim mout As New System.IO.MemoryStream()

    Using zin As New ICSharpCode.SharpZipLib.Zip.ZipInputStream(New System.IO.MemoryStream(bin))
        Dim zentry As ICSharpCode.SharpZipLib.Zip.ZipEntry = zin.GetNextEntry()
        Do While zentry IsNot Nothing
            If zentry.IsFile Then
                ICSharpCode.SharpZipLib.Core.StreamUtils.Copy(zin, mout, buffer)
                Exit Do
            End If
        Loop
    End Using

    Return mout.ToArray()
End Function

В базе данных у меня есть закодированный в base64 текст, созданный функцией CompressData, и я могу прочитать и base64_decode текст.

Есть идеи, как вернуть исходный файл на PHP?

Приветствия!

...