在Laravel中上传多个文件

时间:2018-05-01 08:37:50

标签: php laravel

我一直在尝试在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

此方法适用于单个文件,但不适用于多个文件。有什么建议吗?

1 个答案:

答案 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,
        ]);
    }
}