3

我对如何在数据库表中保存图像内容感到困惑。

请看第四行代码。我确信这种宁静的方法(使用 POST)是有效的,因为它getSize()返回了真值。

此外,如果我调试返回第 5 行的内容,我会得到类似下一行的内容:

在此处输入图像描述

因此,我不确定将这些数据保存到数据库中是否缺少什么。

        $personId = Input::get('PersonId');
        $file = Input::file('media');
        $tmppath = $file->getRealPath();
        $content = file_get_contents($tmppath); //$file->getSize();

        // return $content;

        $model = Person::find($personId);
        $model->Photo = $content;
        $model->save();

        $result = array(
            "success" => true,
            "data" => $personId,
            "error" => ""
        );
4

1 回答 1

0

您需要将文件保存到服务器,并且只将路径存储在数据库中。

编写一个适当的方法,理想情况下您可以将其存储在trait 中

private function saveFileToDisk($file, $fileName)
{
    $path = public_path() . '/uploads/';

    return $file->move($path, $fileName . $file->getClientOriginalExtension());
}

然后将文件输入传递给您的方法并为文件提供名称:

$model->Photo = $this->saveFileToDisk(Input::file('media'), $model->Name);

显然,您需要在所有这些之前验证您的输入。

于 2015-08-07T09:35:11.383 回答