将上传的文件保存到自定义处理程序中

时间:2016-09-18 02:05:48

标签: silverstripe delete-file

我有一个DataObject名为Document:

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进行测试,但也无法正常工作。我该如何保存?

1 个答案:

答案 0 :(得分:0)

public function submitDocument($data, $form) {
    $document = new Document();
    $document->Name = $data['Name'];
    $document->DocumentID = $data['Document']['Files'][0];
    $document->write();
}