图片上传,以用户头像avatar为例

为节省本地磁盘,依托七牛的CDN节点加快访问,从而选择七牛的对象存储来保存avatar.
下述,以流程概述为主,据遇到的实际问题和需求来展开,仅列出关键代码。

技术基础

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

延伸

  • ,也可在composer.lock中查看

普通上传的实现

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

简要说明

  • 软链接配置
php artisan storage:link

命令参考及最后效果

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

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

七牛上传的实现

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

官网 https://www.qiniu.com/

图示一:新建

图示二:查询

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

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

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

  • 存储位置

       Storage::disk('qiniu')->put($newFileName, File::get($request->file('file')->path()));
  • 返回图片地址

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

5.响应数据的检查

6.html中一并提交该图片的返回地址到DB,那么DB中就可查看到相关信息了

Laravel使用之七牛对象存储相关推荐

  1. WordPress七牛云对象存储免费插件WPQiNiu

    ​​有些站长喜欢使用七牛云来加速 WordPress 站点的访问速度,平时需要手工将需要加速的静态文件或图片上传到七牛云存储空间才行.为了提供效率,boke112 联盟建议大家安装这款 WordPre ...

  2. cdn托管html资源,七牛自定义域名cdn加速,静态资源托管至对象存储

    配置前提 1.域名备案备案备案! 2.七牛账号 配置前速度 访问主页加载速度如下: 加载主页需要4秒多,已经是非常慢了,可以看到主要时间浪费在字体文件加载和图片的加载,所有资源全部从服务器被访问,1M ...

  3. 阿里对象存储OSS在laravel框架中的使用

    最近比较忙,也没来得及写博客.加上最近也确实没有接触到什么新技术,有点尴尬... 在昨天算是第一次接触对象存储这个东西,研究了一天,算是在项目中走得通了,所以在此分享给大家,是最基础的OSS上传图片部 ...

  4. 华为云 对象存储服务 OBS 上传文件 上传图片 PHP Laravel

    语言:php 框架:laravel 简介:将项目上所有的 图片.pdf文件.视频等上传到华为云 并获取到华为云的文件地址进行访问 准备工作 composer准备 1.composer.json里添加需 ...

  5. 百度云磁盘CDS、对象存储BOS技术深度解析

    在BAT中,百度在公有云也有很多技术创新.比如2013年引起广泛关注的ARM存储服务器就是一个很好的例子.最近两年,百度云开始发力,其云存储体系有诸多创新之处.目前百度云存储形成了以块存储.对象存储. ...

  6. 块存储、文件存储、对象存储这三者和分布式文件存储系统的本质区别

    块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based St ...

  7. 对象存储、块存储、文件存储的区别

    参考链接 http://www.infoq.com/cn/articles/virtual-forum-three-basic-issues-about-distributed-storage 分布式 ...

  8. 被七牛云OSS对象存储测试域名回收后正确数据迁移姿势!

    概述 七牛云OSS对象存储bucket创建后有一个「外链默认域名」这个域名, 如果没有记错的2018上半年没有回收这个概念, 2018下半年隐隐约约记录收到过「[七牛云]测试域名回收通知」邮件, 出现 ...

  9. 七牛云——对象存储私有空间下载凭证认证失败401[“error“:“download token auth failed“]解决方案

    问题描述 官方文档 对象存储 > 产品手册 > 安全机制 > 下载凭证:https://developer.qiniu.com/kodo/manual/1202/download-t ...

最新文章

  1. Java Setamp;HashSet
  2. iOS9系统下SEGV_ACCERR问题的解决方案
  3. 幼儿园体育游戏电子计算机教案,幼儿园大班体育游戏教案
  4. 210312阶段三通过sqlite3源码安装sqlite3
  5. Mysql索引介绍及常见索引的区别
  6. Hadoop基础教程之搭建开发环境及编写Hello World
  7. visio 2003密钥
  8. Tableau教程——一
  9. 网络规划设计和具体实施
  10. 服务器解压文件出错,四大方法解决解压文件出错问题|解压文件出错
  11. 白小小的可爱伤感空间日志发布:有些人,注定只是过客
  12. 《第五项修炼》序列一
  13. python 听歌识曲_听歌识曲--用python实现一个音乐检索器
  14. Android应用接入微信开放平台
  15. 怎么写一个文章自动生成器-免费的文章生成器下载
  16. Linux 系统管理 : last 命令详解
  17. uniapp uni-icons组件自定义图标
  18. Java 界面按钮动作监听器
  19. 卡拉OK字幕效果制作
  20. 2012年10月27日沈阳WebLogicFans论坛User Group线下活动

热门文章

  1. 语义分割--Deep Dual Learning for Semantic Image Segmentation
  2. linux上安装mysql5.5_【Python】Linux安装Mysql5.5
  3. java面试题2016_2016最新java面试题 详细版
  4. ios 设置属性的center_ios center.x设置
  5. 来看看如何使用策略模式干掉讨厌的 if else
  6. 范围解析操作符 (::)
  7. xshell启动报nssock2_nssock2.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  8. 实例创建流程_Activiti系列~3.流程定义
  9. 计算机启动过程从电路,加电到启动系统的启动过程详解
  10. 字节增强java_java字节增加 - longjunping的个人空间 - OSCHINA - 中文开源技术交流社区...