我知道在数据库中存储文件有点脏,但我需要上传文件并将其存储到数据库 BLOB 中,并且我没有找到任何有关它的文档,也没有找到任何线索,所以有关的任何帮助我们将不胜感激。
提前致谢,
大卫
您不需要做任何特别的事情,只需将要存储在适当的实体属性(分别是数组键)中的数据设置为字符串或流即可。
BLOB
列将自动与\Cake\Database\Type\BinaryType数据库类型 https://github.com/cakephp/cakephp/blob/3.0.12/src/Database/Type/BinaryType.php,其中正在处理存储/读取二进制数据所需的所有内容。
这是一个抽象示例,显示了可能的用例
$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);
读取实体将始终将数据作为流保存,因此您可以将它们与文件系统 http://php.net/manual/en/ref.filesystem.php and Stream http://php.net/manual/en/ref.stream.php函数,例如
$handle = $Table->get(1)->file_a;
while (!feof($handle)) {
echo fread($handle, 8192);
}
echo stream_get_contents($Table->get(1)->file_a);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)