在自定义处理程序中将上传的文件保存到数据库
Saving uploaded file to DB in custom handler
我有一个 DataObject
名为文档:
class Document extends DataObject {
private static $db = array(
'Name' => "varchar"
);
private static $has_one = array(
'Document' => 'File'
);
}
并将其放在前端表单中。文件上传正确,我想将详细信息保存到数据库中。
public function submitDocument($data, $form) {
$document = new Document();
$document->Name = $data['Name'];
$document->Document = $data['Document'];
$document->write();
}
现在名称已写入数据库,但文档并未写入(它在文件系统中)。我知道我可以只写整个东西,因为字段的名称在数据库中是相同的,但是我想手动编写它,因为我想做更复杂的事情。我查看了作为以下内容出现的属性:{"Files":["19"]}
所以我也尝试了 $data['Document']['Files'][0]
,它在我的测试中以 20
的形式登录,但它仍然没有保存。我还手动尝试仅使用 20
进行测试,但这也不起作用。如何保存?
public function submitDocument($data, $form) {
$document = new Document();
$document->Name = $data['Name'];
$document->DocumentID = $data['Document']['Files'][0];
$document->write();
}
我有一个 DataObject
名为文档:
class Document extends DataObject {
private static $db = array(
'Name' => "varchar"
);
private static $has_one = array(
'Document' => 'File'
);
}
并将其放在前端表单中。文件上传正确,我想将详细信息保存到数据库中。
public function submitDocument($data, $form) {
$document = new Document();
$document->Name = $data['Name'];
$document->Document = $data['Document'];
$document->write();
}
现在名称已写入数据库,但文档并未写入(它在文件系统中)。我知道我可以只写整个东西,因为字段的名称在数据库中是相同的,但是我想手动编写它,因为我想做更复杂的事情。我查看了作为以下内容出现的属性:{"Files":["19"]}
所以我也尝试了 $data['Document']['Files'][0]
,它在我的测试中以 20
的形式登录,但它仍然没有保存。我还手动尝试仅使用 20
进行测试,但这也不起作用。如何保存?
public function submitDocument($data, $form) {
$document = new Document();
$document->Name = $data['Name'];
$document->DocumentID = $data['Document']['Files'][0];
$document->write();
}