我正在尝试存储实际存储在我的数据库中的文件夹中的文件名。我将文件保存为原始名称。一切正常,但是当我尝试将名称存储在数据库中时,会存储一些临时文件名而不是预期的名称。我哪里出错了?
$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时它会给出正确的名称。
答案 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>