问一下在座的各位,谁在自己的应用里搞过图片上传、剪裁等工作啊?对吧,非常多的人都搞过。这期间的问题有,比如说在哪儿储存传上来的图片?后期使用的时候,如何获取它们?怎样来优化这些图片?
这些问题吧,其实倒不难,但是吧,搞起来也挺烦的。尤其是如果你要在不同的项目里每次都得搞一遍,很快你就会觉得难以接受、不太合理了。
那么现在呢,好消息是,所有的这些问题都可以用我们发布的一个组件来解决了,叫做Media Library(媒体库)。这样我们在laravel项目里的多媒体文件上传与管理等工作,就有了统一规范的流程,而且该组件有丰富的相关功能,就比我们相对零碎地去添加逻辑,要省心的多了。
在本专场里,spatie的代表人物Freek Van带我们一起演示了Laravel Media Library的整个流程和几乎所有功能,同时在每个环节也都介绍了背后的思路与原理,对于我们用好这个组件,包括学习常见的多媒体处理逻辑,都极有益处。
本专场最初是Freek Van在2018年的laravel国际会议laracon上所作的,同时也是我们《Laravel底层实战兼核心源码解析》这一课程的国际视野扩展视频之一
专场提要:
- 如何上传文件
- 如何将媒体文件与Model关联
- 如何上传文件到媒体集合中
- 如何获取媒体库文件,获取其url、path等
- 获取一个Model下的第一个媒体文件,及其url、path等
- 一个方法直接获取到表单提交的文件,然后添加到媒体库中
- 在删除一个model的时候,组件自动删掉相应的关联媒体
- 媒体转换功能,比如缩略图、裁剪、添加水印等
- 在队列当中执行媒体转换以提高性能
- 自动压缩和优化图片文件
- 自定义存储目录结构
- 使用多种不同的存储系统
- 如何注册媒体集
- 定义媒体集合组的特定规则或行为,比如接收多少文件、类型与体积限制等
- 文件下载功能
- 以媒体流(MediaStream)而不是打包的形式来下载多个文件
- 媒体流背后的原理
- 响应式图片的功能,srcset原理
- svg模糊图片预加载功能