Я пытаюсь написать BLOB в моем MariaDB, используя пост-вызов PHP.Этот BLOB получен при получении BASE64 с холста:
var data= $('#signatureDiv').signature('toDataURL');
var base64data= data.replace(/^data:image\/(png|jpg);base64,/, "");
$.post("myFunc.php", {imgContents: base64data}, function(data) {});
Теперь в myFunc.php:
$imgContents = $_POST['imgContents'];
$decodedPNG = base64_decode($imgContents);
$defTest = "UPDATE recogidas SET FirmaProv = ':blobFirma' WHERE ID=$index";
$preparedpdo = $mypdoObject->prepare($defTest);
$preparedpdo->bindParam(':blobFirma', $decodedPNG, PDO::PARAM_LOB);
$preparedpdo->execute();
echo $decodedPNG;
Я декодирую PNG, чтобы сохранить его как BLOB.Затем я подготавливаю обновление SQL для загрузки этого BLOB в соответствующий столбец MEDIUMBLOB.Тем не менее, данные всегда усекаются до нескольких байтов!Именно к этим байтам:
3A626C6F624669726D61
Когда ему, как PNG, нужно около 100Kb.Я пытался использовать это в начале PHP:
ini_set("odbc.defaultlrl", "1000K");
Но это не имеет никакого эффекта.Чтобы убедиться, что декодирование выполнено правильно, я попытался отобразить декодированный BLOB-файл, и он вернется, если правильно.
Почему моя база данных обрезает данные до пакета байтов?
Дополнительная информация:Не имеет значения, как выглядит изображение, которое я делаю на холсте, данные, загружаемые в базу данных, всегда являются теми же символами.