我想创建并通过的Kohana的ORM图书馆检索在MySQL表中的BLOB。

代码看起来是这样的:

$attachment = new Attachment_Model();
$attachment->name = $info['FileName'];
$attachment->size = strlen($info['Data']);
$attachment->data = $info['Data'];
$attachment->mime_type = $info['content-type'];
$attachment->save();

我已验证的数据是通过将其输出到文件在此点确定。然而,当我检索数据弄出来损坏。我已经成功地缩小这个下来多一点 - 我已经使用了MySQL查询工具来提取数据保存在数据库中,我可以验证数据库中的数据被损坏,所以这个问题必须在INSERT

另外,输入的文件不总是损坏 - 较小的文件(如图像)往往是确定

任何人有什么想法?

有帮助吗?

解决方案

结果证明,在这种情况下,我使用BLOB数据类型。

在BLOB数据类型在65535个字符截断数据(静默,而不发出一个错误!)

我也调升为MEDIUMBLOB(其中有16777215个字符的最大长度),它似乎工作OK!

其他提示

野生猜测,但:可能是因为Kohana的模型层插入所有数据为字符数据,而不是二进制的,保存/检索BLOB对象时,这将导致问题的时候

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top