我一直在尝试在Laravel中上传多个文件。 Stackoverflow中几乎没有解决这个问题的方法,但没有一个适用于我。
这是我的商店方法:
public function bulkstore(Request $request)
{
foreach ($request->file_name as $file) {
if ($request->hasFile('file')) {
$fileNameWithExt = $request->file('file')->getClientOriginalName();
$fileName = pathinfo($fileNameWithExt, PATHINFO_FILENAME);
$extenstion = $request->file('file')->getClientOriginalExtension();
$fileNameToStore = $fileName.'.'.$extenstion;
$path = $request->file('file')->storeAs('public/images', $fileNameToStore);
}
File::create([
'file_name' => $fileNameToStore,
]);
}
return redirect('/file');
}
我收到此错误:
未定义的变量:fileNameToStore
此方法适用于单个文件,但不适用于多个文件。有什么建议吗?
答案 0 :(得分:0)
您可以尝试这样
$files = $request->file('file');
if($request->hasFile('file'))
{
foreach ($files as $file) {
$fileNameWithExt = $file->getClientOriginalName();
$fileName = pathinfo($fileNameWithExt, PATHINFO_FILENAME);
$extenstion = $file->getClientOriginalExtension();
$fileNameToStore = $fileName.'.'.$extenstion;
$path = $file->storeAs('public/images', $fileNameToStore);
File::create([
'file_name' => $fileNameToStore,
]);
}
}