Изображение в строку и обратно - PullRequest
0 голосов
/ 31 октября 2018

Мне нужно хранить изображения в базе данных MSSQL как часть обработки формы, которая обрабатывается PHP.

До этого мой клиент выполнял эту задачу со следующим кодом C #:

  Dim content As Byte() = ImageToStream(fName)
                cnn.Open()

                Dim cmd As New SqlCommand("UPDATE lide SET pictPostava = @img WHERE ID = '" & GetValueToTextBox(iRow, "ID") & "'", cnn)
                cmd.Parameters.AddWithValue("@img", content)
                cmd.ExecuteNonQuery()

                cnn.Close()

                content = Nothing
    Public Function ImageToStream(ByVal fileName As String) As Byte()
        Dim stream As New MemoryStream()
tryagain:
        Try
            Dim image As New Bitmap(fileName)
            image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg)
        Catch ex As Exception
            GoTo tryagain
        End Try

        Return stream.ToArray()
    End Function

Я попытался скопировать его с помощью функции unpack () на основе http://php.net/manual/en/function.mssql-query.php#31688

// convert file
$file = file_get_contents('http://www.sunagency.cz/wp-content/uploads/2017/01/1745083-150x150.jpg');
$unpacked = "0x" . unpack("H*hex", $file);

// get the hexcode of image
print_r( $unpacked['hex'] );

Однако он не может его восстановить. И если честно, я тоже не уверен, как вернуть его обратно с помощью PHP - изменение заголовка на Image не решит проблему.

// view the packed file
header("Content-type: image/jpeg;");
echo $unpacked['hex'];

Не могли бы вы помочь? Я никогда не делал этого раньше и был бы более чем счастлив решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...