Laravel文件上传原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33867131/article/details/86139716
public function store(Request $request){

    $path = null;
    if($request->hasFile('thumbnail')){
        // 获取上传的文件
        $thumb = $request->thumbnail;
        // 拼接文件名($thumb->extension()获取上传文件的后缀)
        //$name = str_random(40).'.'.$thumb->extension();
        $name = $thumb->hashName();     // 和上面生成文件名的原理类似
        // 存储上传文件(存储目录storage/public/thumbs/,返回值$path是文件存储的目录,
	    // 存数据库的时候可以存这个地址)
        $path = $request->thumbnail->storeAs('public/thumbs', $name);
        // 如果你想上传的文件能够通过浏览器被访问到,需要执行命令:php artisan         
           storage:link,
	    // 这样storage/public目录就能被访问到了,你的文件也要存储到storage/public下
    }

    // 通过projects()关系,储存数据,不用再单独存user_id字段,已经自动存储了
    $request->user()->projects()->create([
        'name'=> $request->name,
        'thumbnail'=> $path
    ]);
    return '成功';
}

猜你喜欢

转载自blog.csdn.net/qq_33867131/article/details/86139716
今日推荐