如何在Laravel中使用播种器保存特定文件.docx

时间:2019-06-11 09:48:44

标签: laravel

我想用播种器在laravel的mysql数据库中保存文件.docx

这是我在DocumentTableSeeder中的代码

 public function run()
{
    DB::table('document')->insert([
        'filename' => file_get_contents(database_path() . '/seeds/SOW.docx'),

    ]);

    DB::table('document')->insert([
        'filename' => file_get_contents(database_path() . '/seeds/RFQ.docx'),

    ]);

    DB::table('document')->insert([
        'filename' => file_get_contents(database_path() . '/seeds/TKDN.docx'),

    ]);

}
文档表中的

文件名字符串,但是我遇到了这样的错误 enter image description here

如何使用播种器laravel将.docx文件保存在mysql数据库中? 帮助 谢谢

1 个答案:

答案 0 :(得分:0)

您可以将列类型更改为longText,也许文件的内容被截断了。

并使用htmlenties函数将文件内容转换为安全内容。

public function run()
{
    DB::table('document')->insert([
        'filename' => htmlentities(file_get_contents(database_path() . '/seeds/SOW.docx')),
    ]);

    DB::table('document')->insert([
        'filename' => htmlentities(file_get_contents(database_path() . '/seeds/RFQ.docx')),
    ]);

    DB::table('document')->insert([
        'filename' => htmlentities(file_get_contents(database_path() . '/seeds/TKDN.docx')),
    ]);
}

我不知道您的逻辑,但您不应将文件内容保存到数据库中,而应保存文件路径而不是文件内容。