Получите изображение, сохраненное в vb.net и ICSharpCode.SharpZipLib.Zip.ZipInputStream в PHP

Я застрял, интегрируя данные, созданные в 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?

Ура!

0 ответов

Другие вопросы по тегам