我正试图用一个php post调用在我的mariadb中写一个blob。这个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,如果正确,它会返回。
为什么我的数据库将数据截断为一组字节?
额外信息:不管我在画布上制作的图片如何,上传到数据库的数据总是相同的字符。