如何在Laravel 5.2中添加其他图像扩展?

时间:2017-09-14 02:36:05

标签: image laravel validation upload laravel-5.2

我有这个解决方案,通过选择正在运行的存储文件夹来上传用户配置文件的图像。 问题是如何将图像扩展到银行,或者如何在控制器中验证其他任何人可以帮助我的扩展?

控制器

public function getAccount()
{
    return view('account', ['user' => Auth::user()]);
}

public function postSaveAccount(Request $request)
{
    $this->validate($request, [
        'email' => 'required|email|max:100'
    ]);

    $user           = Auth::user();
    $old_email      = $user->email;
    $user->email    = $request['email'];


    $user->update();
    $file = $request->file('image');

    $file_email     = $request['email'] . '-' . $user->id . '.jpg';
    $old_file_email = $old_email . '-' . $user->id . '.jpg';
    $update = false;

    if (Storage::disk('local')->has($old_file_email)) {
        $old_file = Storage::disk('local')->get($old_file_email);
        Storage::disk('local')->put($file_email, $old_file);
        $update = true;
    }

    if ($file) {
        Storage::disk('local')->put($file_email, File::get($file));
    }

    if ($update && $old_file_email !== $file_email) {
        Storage::delete($old_file_email);
    }
    return redirect()->route('account');
}

public function getUserImage()
{
    $user  = Auth::user();
    $image ="". $user->email . '-' . $user->id . '.jpg';
    $file  = Storage::disk('local')->get($image);
    return Response::make($file,200,[ 'Content-Type' => 'image/jpeg']);


}

路线

Route::get('/account', [
'uses' => 'UserController@getAccount',
'as'   => 'account'
]);

Route::post('/upateaccount', [
'uses' => 'UserController@postSaveAccount',
'as'   => 'account.save'
]);

Route::get('/userimage', [ 
'uses' => 'UserController@getUserImage',
'as'   => 'account.image'
]);

查看

 <img src="{{ route('account.image')}}">

存储库GitLab https://gitlab.com/ronnyere/imageUploadLaravel.git

1 个答案:

答案 0 :(得分:0)

我建议您使用一个分机来存储上传的图像

要将所有可能的图片扩展程序编码为一个扩展程序,您可以使用Intervention Image

您可以使用...

更改所有上传图片的扩展名
jpg

您也可以将{{1}}更改为其他扩展程序