【问题标题】:Parsing dataURI image from JavaScript to PHP将 dataURI 图像从 JavaScript 解析为 PHP
【发布时间】:2015-07-12 09:39:43
【问题描述】:

我在 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:\程序文件 (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\CR\module\compte\demande\dem_user.php 第 89 行

警告:PDOStatement::execute(): 读取结果集的标头时出错 C:\程序文件 (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\CR\module\compte\demande\dem_user.php 在第 89 行 SQLSTATE[HY000]:一般错误:2006 MySQL 服务器已消失 离开

【问题讨论】:

标签: javascript php mysql pdo


【解决方案1】:

这可能是由于您尝试存储的图像的大小足以超出为 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 节“数据包太大”。

【讨论】:

    【解决方案2】:

    问题是JavaScript端的dataURI使用“+”来连接,而PHP使用“。”所以解决方法是将“+”替换为“.”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 2015-01-04
      • 2011-06-01
      • 1970-01-01
      相关资源
      最近更新 更多