public static function boot() { parent::boot(); static::creating(function ($profile) { $string = preg_replace('/\\s+/', '', $profile->display_name); $filename = time() . '-' . $string . '.png'; $path = public_path('img/avatar/' . $filename); \Avatar::create($profile->display_name)->save($path, 100); $profile->profile_pic = asset('img/avatar/' . $filename); }); }
public static function edit($request) { $validator = Validator::make($request->all(), ['name' => 'required|max:50', 'phone' => 'required|max:50', 'email' => 'required|email', 'city' => 'required|integer', 'image' => 'image']); if (!$validator->fails()) { Auth::user()->name = $request->input('name'); Auth::user()->phone = str_replace([' ', '(', ')', '-'], '', $request->input('phone')); Auth::user()->email = $request->input('email'); Auth::user()->city_id = $request->input('city'); if (null != Request::input('password')) { Auth::user()->password = $request->input('password'); } if (null != Input::file('image')) { $file = Input::file('image'); if ($file->isValid()) { $image = Image::make($file); $notFullPath = 'avatars/' . date("Y") . '/' . date('m') . '/' . date('d') . '/'; $path = 'upload/' . $notFullPath; $extension = File::extension($file->getClientOriginalName()); $filename = uniqid() . '.' . $extension; if (!is_dir($path)) { mkdir(public_path($path), 0777, true); } $path .= '/'; $image->fit(140, 140); $image->save($path . $filename); $avatar = Avatar::where('user_id', Auth::user()->id)->first(); if (is_null($avatar)) { $avatar = new Avatar(); $avatar->user_id = Auth::user()->id; } else { File::delete('upload/' . $avatar->path); } $avatar->path = $notFullPath . $filename; $avatar->save(); } else { echo 'Invalid file'; } } Auth::user()->save(); } }
/** * Run the database seeds. * * @return void */ public function run() { DB::table('users')->insert([['name' => 'Tony', 'email' => '*****@*****.**', 'password' => Hash::make('Tony'), 'role' => 'administrator'], ['name' => 'Antoine', 'email' => '*****@*****.**', 'password' => Hash::make('Antoine'), 'role' => 'visitor'], ['name' => 'Romain', 'email' => '*****@*****.**', 'password' => Hash::make('Tony'), 'role' => 'visitor'], ['name' => 'yini', 'email' => '*****@*****.**', 'password' => Hash::make('Yini'), 'role' => 'visitor']]); factory(App\Customer::class, 4)->create(); // avatars DB::table('avatars')->delete(); DB::statement("ALTER TABLE avatars AUTO_INCREMENT=1"); $files = Storage::allFiles(env('UPLOADS_AVATARS', 'uploads')); foreach ($files as $file) { Storage::delete($file); } $users = User::all(); foreach ($users as $user) { $uri = str_random(12) . '_216x256.jpg'; $fileName = file_get_contents('http://lorempixel.com/216/256/animals'); $pathDirectory = env('UPLOADS_AVATARS', 'avatars') . DIRECTORY_SEPARATOR . $uri; Storage::put($pathDirectory, $fileName); $mime = mime_content_type(storage_path('app') . DIRECTORY_SEPARATOR . $pathDirectory); Avatar::create(['user_id' => $user->id, 'uri' => $uri, 'title' => $this->facker->name, 'mime' => $mime]); } }
/** * @param $userId * @return mixed */ public function getAvatar($userId) { $avatar = Avatar::where('user_id', '=', (int) $userId)->firstOrFail(); $file = Storage::disk('local')->get(env('UPLOAD_AVATARS') . DIRECTORY_SEPARATOR . $avatar->uri); return response($file, 200)->header('Content-Type', $avatar->mime); }