使用CakePHP3上传文件并将其存储在blob中

使用CakePHP3上传文件并将其存储在blob中,cakephp,file-upload,blob,cakephp-3.0,Cakephp,File Upload,Blob,Cakephp 3.0,我知道在数据库中存储文件有点脏,但我需要上传一个文件并将其存储到数据库BLOB中,我还没有找到任何关于它的文档,也没有找到任何线索,因此任何关于它的帮助都将不胜感激 提前感谢,, David您不需要做什么特殊的事情,只需将要存储在相应实体属性(分别是数组键)中的数据设置为字符串或流 BLOB列将自动与关联,其中处理存储/读取二进制数据所需的所有内容 下面是一个抽象示例,展示了可能的用例 $data = [ 'file_a' => file_get_contents('path/to

我知道在数据库中存储文件有点脏,但我需要上传一个文件并将其存储到数据库BLOB中,我还没有找到任何关于它的文档,也没有找到任何线索,因此任何关于它的帮助都将不胜感激

提前感谢,,
David

您不需要做什么特殊的事情,只需将要存储在相应实体属性(分别是数组键)中的数据设置为字符串或流

BLOB
列将自动与关联,其中处理存储/读取二进制数据所需的所有内容

下面是一个抽象示例,展示了可能的用例

$data = [
    'file_a' => file_get_contents('path/to/file.ext'),
    'file_b' => fopen('path/to/file.ext', 'r'),
    'file_c' => 'foo bar baz'
];
$entity = $Table->newEntity($data);
$Table->save($entity);
读取实体将始终以流的形式保存数据,因此您可以将它们与和函数一起使用,如

$handle = $Table->get(1)->file_a;
while (!feof($handle)) {
    echo fread($handle, 8192);
}

通常,在上载处理程序中,您会获得对创建的临时文件的引用,并将其移动到所需的位置。相反,听起来您希望使用file\u get\u内容并将数据写入数据库。我不认为这是蛋糕特有的;也许这就是为什么你没有找到与这个特定任务相关的文档。那么,没有办法利用脚手架和/或ORM设施?我觉得我错过了什么。
echo stream_get_contents($Table->get(1)->file_a);