首页 > 解决方案 > 在 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

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

标签: phplaravel

解决方案


你可以这样尝试

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

推荐阅读