【问题标题】:How to put other image extensions in Laravel 5.2?如何在 Laravel 5.2 中添加其他图像扩展?
【发布时间】:2018-02-22 21:03:59
【问题描述】:

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

控制器

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

【问题讨论】:

    标签: image laravel validation upload laravel-5.2


    【解决方案1】:

    我建议你使用一个扩展来存储上传的图片

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

    您可以使用...更改所有上传图片的扩展名

    Image::make($request->file('image')->getRealPath())->encode('jpg');
    

    您也可以将jpg 更改为其他扩展名

    【讨论】:

      猜你喜欢
      • 2016-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 2017-04-09
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      相关资源
      最近更新 更多