[英]Parsing dataURI image from JavaScript to PHP
我在JavaScript中创建了一个函数,该函数将用户选择的“图像”文件转换为dataURI。 然后我通过POST方法将其传递给php脚本。 问题是当我尝试按以下方式将此信息保存到MySQL中时
$him = $_POST["him"];
$req = $pdo->prepare("INSERT INTO `cr`.`chercheur`
(`cin`, `nom`, `prenom`, `statut`,
`tel1`, `email`, `tof`, `etat`)
VALUES (?, ?, ?, ?, ?,?, ?, '0')");
$req->execute(array($cin,$nom,$prenom,$statu,$tel,$mail,$him));
我在下面收到一个错误。
警告:PDOStatement :: execute():MySQL服务器已经消失在C:\\ Program Files(x86)\\ EasyPHP-DevServer-14.1VC9 \\ data \\ localweb \\ projects \\ CR \\ module \\ compte \\ demande \\ dem_user.php 89
警告:PDOStatement :: execute():读取C:\\ Program Files(x86)\\ EasyPHP-DevServer-14.1VC9 \\ data \\ localweb \\ projects \\ CR \\ module \\ compte \\ demande \\ dem_user.php中的结果集标头时出错89 SQLSTATE [HY000]:常规错误:2006 MySQL服务器已消失
这可能是由于您要存储的图像大小足够大,以致溢出了为MySQL配置的最大数据包大小。 尝试将MySQL安装文件夹(在[mysqld]
部分下)的my.ini
中的max_allowed_packet
设置更改为更大的值。
您可以使用以下SQL命令检查当前值(以及您设置的新值是否已生效):
SHOW VARIABLES LIKE 'max_allowed_packet';
参见本页: http : //dev.mysql.com/doc/refman/5.0/en/gone-away.html
如果您向服务器发送不正确或太大的查询,您也会收到这些错误。 如果mysqld收到的数据包太大或顺序混乱,则认为客户端出了点问题,并关闭了连接。 如果需要大型查询(例如,如果使用大型BLOB列),则可以通过设置服务器的max_allowed_packet变量来增加查询限制,该变量的默认值为1MB。 您可能还需要增加客户端上的最大数据包大小。 有关设置数据包大小的更多信息,请参见第B.5.2.10节“数据包太大”。
问题是JavaScript端的dataURI使用“ +”进行连接,而PHP使用“”。 因此解决方案是将“ +”替换为“”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.