PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > Laravel教程 > 正文

    Laravel5.4上传头像使用七牛对象存储

    作者:admin来源:网络浏览:时间:2017-10-11 19:28:19我要评论
    分享到
    导读:图片上传,以用户头像avatar为例,为节省本地磁盘,依托七牛的CDN节点加快访问,从而选择七牛的对象存储来保存avatar.下述,以流程概述为主...
    图片上传,以用户头像avatar为例,为节省本地磁盘,依托七牛的CDN节点加快访问,从而选择七牛的对象存储来保存avatar.
    下述,以流程概述为主,据遇到的实际问题和需求来展开,仅列出关键代码。

    技术基础

    Laravel5.4.36+webuploader(异步上传)        //笔者环境如此

    延伸

    Laravel5.4上传头像使用七牛对象存储

    也可在composer.lock中查看

    Laravel5.4上传头像使用七牛对象存储

    普通上传的实现

    1. public function webUpload(Request $request){ 
    2.     //1.是否有文件上传及上传文件的有效性判断(file,是webUploader插件用来接收文件的) 
    3.     if ($request->hasFile('file') && $request->file('file')->isValid()) { 
    4.  
    5.         $newFileName =  md5($request->file('file')->getClientOriginalName() . time()) 
    6.                         . '.' 
    7.                         . $request->file('file')->getClientOriginalExtension(); 
    8.  
    9.         //2.保存到该磁盘(为啥?通过检查/storage目录的.gitignore,了解到该目录下的文件才能被提交;且在软链接的配置后可直接访问) 
    10.         //文件名重复就会覆盖=>因此要回到上一步=>自定义文件名 $newFileName 
    11.         Storage::disk('public')->put($newFileName, File::get($request->file('file')->path()));//Storage门面确认存储位置,File门面获取文件全部内容 
    12.  
    13.         //3.返回结果 www.bcty365.com B5教程网 
    14.         return [            //laravel中会自动处理,返回成json数据 
    15.             'code' => 1, 
    16.             'message' => '文件上传成功'
    17.             //4.返回的必须是/public下可直接访问的图片地址. 
    18.             //因laravel中站点是直接指向/public的,因此图片也要在/public下才可以(而如前所设,图片被保存在了/storage/app/public) 
    19.             //=>此时可通过软链接配置来达到快捷访问的效果 
    20.             'path' => '/storage/' . $newFileName 
    21.         ]; 
    22.     } 
    23.     return [ 
    24.         'code' => 0, 
    25.         'message' => $request->file('file')->getErrorMessage(), 
    26.     ]; 

    简要说明

    软链接配置

    php artisan storage:link

    命令参考及最后效果

    Laravel5.4上传头像使用七牛对象存储

    Laravel5.4上传头像使用七牛对象存储

    普通上传代码中,提及的图片保存的实际路径

    Laravel5.4上传头像使用七牛对象存储

    如上步骤,既已实现本地磁盘的存储,那么七牛上传就不在话下了.只不过是换了个保存图片的地址而已.

    七牛上传的实现
    1.如上所述,已实现了avatar的普通上传。七牛上传,则在该代码基础上来修改.
    2.用七牛=>注册七牛=>选择并新建对象存储空间=>从而得到[空间名字和测试域名]
    官网 https://www.qiniu.com/

    Laravel5.4上传头像使用七牛对象存储

    Laravel5.4上传头像使用七牛对象存储


    3.借助第三方集成的SDk来处理上传

    https://github.com/zgldh/qini...

    Laravel5.4上传头像使用七牛对象存储

    修改普通上传的代码,有两处:

    存储位置
    Storage::disk('qiniu')->put($newFileName, File::get($request->file('file')->path()));
    返回图片地址
    'path' => Storage::disk('qiniu')->getDriver()->downloadUrl($newFileName), //这里要返回的是七牛云存储的图片的路径(第三方提供的文档中查找可用方法)

    响应数据的检查

    Laravel5.4上传头像使用七牛对象存储

    html中一并提交该图片的返回地址到DB,那么DB中就可查看到相关信息了
    转载请注明(B5教程网)原文链接:http://www.bcty365.com/content-153-6030-1.html
    相关热词搜索: Laravel 七牛对象存储
    网友评论: