douguai4653 2019-01-06 15:14
浏览 72
已采纳

我想用Laravel上传用户图片

I want to upload a user image with Laravel. I upload the photo to the storage folder, but it doesn't appear on my visual view page.How can I change the path of a photo? My Codes: File Name:Controller

public function postSaveAccount(Request $request)
{
    $this->validate($request, [
        'first_name' => 'required| max:50'
    ]);
    $user = Auth::user();
    $user->first_name = $request['first_name'];
    $user->update();
    $file = $request->file('image');
    $filename =  $request['first_name']. '-' . $user->id . '.jpg';
    if($file) {
        Storage::disk('local')->put($filename, File::get($file));
    }
    return redirect()->route('account');
}
public function getUserImage($filename)
{
    $file = Storage::disk('local')->get($filename);
    return new Response($file, 200);
}

My Codes:

File Name: account.blade.php

<section class="row new-post">
    <div class="col-md-6 col-md-offset-3">
        <header><h3>Your Account</h3></header>
        <form action="{{route('account.save')}}" method="post" enctype="multipart/form-data">
            <div class="form-group">
                <label for="first_name">First Name</label>
                <input type="text" name="first_name" class="form-control" value="{{$user->first_name}}" id="first_name">
            </div>
            <div class="form-group">
                <label for="image">Image (Only.jpg)</label>
                <input type="file" name="image" class="form-control" id="image">
            </div>
            <button type="submit" class="btn btn-primary">Save Account</button>
            <input type="hidden" value="{{Session::token()}}" name="_token">

        </form>
    </div>
</section>
@if(Storage::disk('local')->has($user->first_name. '-' . $user->id . '.jpg'))
<section class="row new-post">
    <div class="col-md-6">
        <img src="{{route('account.image',['filename' => $user->first_name. '-' .$user->id. '.jpg']) }}" alt="" class="img-responsive">
    </div>

</section>
  • 写回答

1条回答 默认 最新

  • dre93205 2019-01-06 16:26
    关注

    You can upload an image like this:

    public function store(Request $request)
    {
        $imgLocation = Storage::disk('public')->put(time() . '.' . $request->file('image')->getClientOriginalName(), $request->gif), $request->file('image'));
    
        // you may need this to save it in an image model / table if dont skip this creation
        $image = Image::create([
            'name' => $request->name,
            'path' => $imgLocation
        ]);
    
        if ($video) {
            return response()->json("Success!");
        }
    
        return response()->json("Error!");
    
        // You can also return redirect()->route('image.index')...
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟