繁体   English   中英

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

[英]How can I store saved filename in database : 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时,它给出了正确的名称。

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

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

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

只需单独指定所有字段,然后点击保存方法即可。 名称和年龄就是例子!

尝试替换下面的行

 $student->image = $filename;

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

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

$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'));

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

https://github.com/Saeid-Khaleghi/media-store

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM