PHP / MySQLi - file_get_contents()超过了Max Allowed Packet

时间:2013-11-13 18:02:33

标签: php mysql mysqli

我正在尝试将文件作为Blob从表单上传到MySQL数据库。问题是max_allowed_pa​​cket是65536字节,如果文件超过那个大小,它就会被破坏。

现在我正在这样做以获取文件内容,这有效:

$certificateWaiverFile = file_get_contents($_FILES['inputCertificateWaiverFile']['tmp_name']);

然后我使用send_long_data()将其插入db:

$stmt->send_long_data(28, $certificateWaiverFile);

虽然它到达了数据库,但它表示blob是65536字节,即使它真的是360KB。当我尝试下载它时,神秘地显示为352KB而不是65536字节。

如果我无法调整max_allowed_pa​​cket,有关如何分解文件以实际将其正确存储在数据库中的任何想法?谢谢!

1 个答案:

答案 0 :(得分:1)

我想出了这个问题。我使用的是BLOB而不是MEDIUMBLOB,它将限制从64kb更改为16mb。现在我知道了!