Поле BLOB не одинаково в Ubuntu Linux и Windows Server

Я выполняю этот запрос на сервере MSSQL с сервера Ubuntu Linux 16.04:

SELECT binaryImage FROM mytable;

Ну, я получил двоичное содержимое моего изображения и с помощью base64_encode() Функция в PHP может отображать изображения.

"<img src='data:image/jpeg;base64,".base64_encode($binaryImage)."'/>"

Работает отлично.

Но когда я выполняю тот же запрос в той же базе данных, но из Windows Server 2012 R2, двоичное содержимое отличается и не может отображать изображение.

Кроме того, я сделал var_dump() чтобы увидеть, какой двоичный контент извлекается в каждом случае и отличается в Linux и Windows Server. На обоих я использую sqlsrv_pdo для php7.

Я не знаю, что происходит … Мне нужно работать на Windows Server 2012 R2. Может быть, кодирование или что-то подобное? Благодарю.

РЕДАКТИРОВАТЬ: слева, двоичный контент в Linux и справа, двоичный контент в Windows Server. В Linux он имеет длину около 1.000.000 символов, а в Windows — около 2.000.000

введите описание изображения здесь

EDIT2: информация о соединении.

$database = [
'ServerName' => 'localhost',
'Database' => 'db',
'UID' => 'user',
'PWD' => 'pass',
'CharacterSet' => "UTF-8"];

$conn = new PDO(
"sqlsrv:server={$database['ServerName']};Database={$database['Database']}",
$database['UID'],
$database['PWD'],
array(
//PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
)
);

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector