当我尝试下面的脚本时,如何从laravel中的不同字段上传多个文件,仅上传一个文件,而不是将所有文件上传到数据库
public function store(Request $request)
{
$request->validate([
'id_satker' => ['required', 'string', 'max:255'],
'dipa' => 'required|mimes:pdf,xlx,csv,rar,xlsx,docx,doc,xlsb,pptx,ppt,jpg,png,jpeg|max:3000',
'sk' => 'required|mimes:pdf,xlx,csv,rar,xlsx,docx,doc,xlsb,pptx,ppt,jpg,png,jpeg|max:3000',
'lms1' => ['required', 'string', 'max:255'],
'lms2' => ['required', 'string', 'max:255'],
'las1' => ['required', 'string', 'max:255'],
'las2' => ['required', 'string', 'max:255'],
]);
//upload
$namafiledipa = time().'.'.$request->file('dipa')->extension();
$namafilesk = time().'.'.$request->file('sk')->extension();
$dipa = $request->file('dipa')->storeAs('public/uploads/inputans', $namafiledipa);
$sk = $request->file('sk')->storeAs('public/uploads/inputans', $namafilesk);
$inputans = Inputan::create([
'id_satker' => $request->id_satker,
'dipa' => $namafiledipa,
'sk' => $namafilesk,
'lms2' => $request->lms2,
'las1' => $request->las1,
'las2' => $request->las2,
]);
return redirect('inputan')->with('success', 'Selamat data berhasil ditambah!');
}
答案 0 :(得分:1)
您不需要使用time()
,它可以具有相同的值。这将替换您的第一个文件$namafiledipa
。
$a = time(); // 1581065644
$b = time(); // 1581065644
dd($a, $b);
Laravel自动为文件名生成一个唯一的ID。
try {
$namafiledipa = $request->file('dipa')->store();
$namafilesk = $request->file('sk')->store();
$inputans = Inputan::create([
'id_satker' => $request->id_satker,
'dipa' => $namafiledipa,
'sk' => $namafilesk,
'lms2' => $request->lms2,
'las1' => $request->las1,
'las2' => $request->las2,
]);
return redirect('inputan')
->with('success', 'Selamat data berhasil ditambah!');
} catch (\Exception $e) {
dd($e);
}
try-catch
可以在出现问题时为您提供帮助。