如何在Laravel中将用户ID设置为存储路径?

时间:2019-07-13 22:41:02

标签: php laravel

我正在使用Laravel 5和MongoDB构建一个Restful API。 我正在为用户保存头像图片。 它工作正常,但我正在尝试为每个用户创建一个文件夹。例如:"app/players/images/USERID"

我尝试以不同的方式执行类似的操作,但是我始终不支持Driver []。

\Storage::disk('players'.$user->id)->put($image_name, \File::get($image));

上传图片:

    public function uploadImage(Request $request)
    {

    $token = $request->header('Authorization');
        $jwtAuth = new \JwtAuth();
    $user = $jwtAuth->checkToken($token, true);

        $image = $request->file('file0');

        $validate = \Validator::make($request->all(), [

            'file0' => 'required|image|mimes:jpg,jpeg,png'

        ]);

        if ( !$image || $validate->fails() ) 
        {

            $data = array(
                'code' => 400,
                'status' => 'error',
                'message' => 'Image uploading error-'
            );

        }
        else
        {

            $image_name = time().$image->getClientOriginalName();
            \Storage::disk('players')->put($image_name, \File::get($image));

            $user_update = User::where('_id', $user->id)->update(['imagen' => $image_name]);

            $data = array(
                'code' => 200,
                'status' => 'success',
                'user' => $user->id,
                'imagen' => $image_name
            );
        }


    return response()->json($data, $data['code']);
    }

filesystems.php:

        'players' => [
            'driver' => 'local',
            'root' => storage_path('app/players/images/'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

我希望用户头像图像保存在User ID文件夹中。

2 个答案:

答案 0 :(得分:0)

该磁盘调用告诉Laravel使用哪个文件系统,假设您有一个ID为1的用户,并且您的代码将访问文件系统playeers1。

通常要做的是将这些文件放在不同用户的文件夹结构中,因此您可以这样做。这会将您的图片文件放在文件夹1中。

\Storage::disk('players')->put($user->id . '/' . $image_name, \File::get($image));

答案 1 :(得分:0)

我遇到了类似的问题,请检查这些行是否可以更改您想要实现的目标。

\Storage::disk('players')->put("{$user->id}/{$image_name}", \File::get($image));

我依靠laravel指南:File Storage - File Uploads

我希望它能对您有所帮助。亲切的问候。