繁体   English   中英

将dataURI图像从JavaScript解析为PHP

[英]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_pa​​cket变量来增加查询限制,该变量的默认值为1MB。 您可能还需要增加客户端上的最大数据包大小。 有关设置数据包大小的更多信息,请参见第B.5.2.10节“数据包太大”。

问题是JavaScript端的dataURI使用“ +”进行连接,而PHP使用“”。 因此解决方案是将“ +”替换为“”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM