在Silverstripe 4文档中,提到了使用BLOB或s3存储的可能性(https://www.silverstripe.org/learn/lessons/v4/working-with-files-and-images-1)
但是我找不到任何有关如何处理BLOB存储的文档。这仅是关于配置还是需要一些实现?有例子吗?
答案 0 :(得分:0)
您可以为BLOB创建一个自定义DBField类。
以下是DBBlobField
类在MariaDB的SS 4.2中工作的示例。
use SilverStripe\ORM\DB;
use SilverStripe\ORM\FieldType\DBField;
class DBBlobField extends DBField
{
function requireField()
{
DB::require_field($this->tableName, $this->name, "mediumblob");
}
}
mediumblob
是数据库支持的BLOB类型。
在DataObject中定义$ db字段。
private static $db = [
"Data" => DBBlobField::class
];
将文件内容保存到Data
字段中。
$dataObject->Data = file_get_contents($filePath);
$dataObject->write();