如何在数据库中存储已保存的文件名:laravel?

时间:2017-04-30 08:02:25

标签: php laravel

我正在尝试存储实际存储在我的数据库中的文件夹中的文件名。我将文件保存为原始名称。一切正常,但是当我尝试将名称存储在数据库中时,会存储一些临时文件名而不是预期的名称。我哪里出错了?

$student = new Student();
    $student->create($request->all());
    $gradeId = $request->grade_id;
    $file = $request->file('image');
    $filename = $file->getClientOriginalName();
    $file->storeAs('public', $filename);
    $student->image = $filename;
    return redirect()->route('index', compact('gradeId'));

'C:\ xampp \ tmp \ phpA812.tmp'这是存储在数据库中但是当我回显$ filename时它会给出正确的名称。

4 个答案:

答案 0 :(得分:1)

不要使用create方法,因为它会直接保存新模型。 执行以下操作:

$file = $request->file('image');
$filename = $file->getClientOriginalName();

$student = new Student();
$student->name = $request->name;
$student->age = $request->age;
$student->image = $filename;
$student->save();

只需单独指定所有字段,然后点击save方法。姓名和年龄就是例子!

答案 1 :(得分:0)

尝试替换以下行

 $student->image = $filename;

  Student::where('id', $student->id)->update(['image' => $filename]);

答案 2 :(得分:0)

您可以单独设置学生属性,而不是批量分配。

$student = new Student(); 

$student->name = $request->input('name');
// Set other properties

$file = $request->file('image');
$filename = $file->getClientOriginalName(); 
$file->storeAs('public', $filename);

$student->image = $filename;

$student->save();
return redirect()->route('index', compact('gradeId'));

答案 3 :(得分:0)

要在数据库中存储文件的所有属性,可以使用以下程序包:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="true" />
        <security>
            <requestFiltering>
                <fileExtensions>
                    <remove fileExtension=".config" />
                    <add fileExtension=".config" allowed="true" />
                    <add fileExtension=".dll" allowed="true" />
                    <add fileExtension=".exe" allowed="true" />
                </fileExtensions>
            </requestFiltering>
        </security>
        <handlers accessPolicy="Read, Script" />
        <staticContent>
            <mimeMap fileExtension=".cache" mimeType="text/plain" />
        </staticContent>
    </system.webServer>
</configuration>