【发布时间】:2013-11-14 02:39:14
【问题描述】:
我正在尝试将文件作为 Blob 从表单上传到 MySQL 数据库。问题是 max_allowed_packet 是 65536 字节,如果文件超过该大小,它就会损坏。
现在我这样做是为了获取文件内容,这很有效:
$certificateWaiverFile = file_get_contents($_FILES['inputCertificateWaiverFile']['tmp_name']);
然后我使用send_long_data() 将其插入到数据库中:
$stmt->send_long_data(28, $certificateWaiverFile);
不过,一旦它到达数据库,它就会说 blob 是 65536 字节,尽管它实际上是 360KB。当我尝试下载它时,它神秘地显示为 352KB 而不是 65536 字节。
假设我无法调整 max_allowed_packet,关于如何分解文件以实际将其正确存储在数据库中的任何想法?谢谢!
【问题讨论】:
-
可以不调整 max_allowed_packet 吗?如果可以,这可能会有所帮助:stackoverflow.com/questions/8062496/… - 否则 showdev 的答案看起来很棒。