laravel文件系统操作笔记 - CSDN博客

今天碰到个需求,需要编译某个目录下的所有 .php 文件(怎么感觉这种场景碰到过好多次,不同的公司项目中,都碰到过。。,但一直也没有总结过一个好的方法) 不想再写了。。。另外是感觉自己写出来的太弱了。。。所以就上网搜索,看有没有。一搜就是一般的递归方法,也没细看,想着看laravel有没有高大上的代码。 定位到了 laravel 官方文档: 文件系统/云存储:Storage (再吐槽下:可见之前看文档有多不仔细...可能也是当时觉得没啥用,没啥印象吧!) 仔细一看,很强大啊!递归所有文件、所有目录,支持不同驱动,文件的操作,文件的写入、追加,应该是我们想到的,人家估计都实现了!

github地址: https://github.com/thephpleague/flysystem

官网: https://flysystem.thephpleague.com laravel的storage使用的就是它,

文档地址: http://laravelacademy.org/post/3181.html 具体文档就不看了,内容太多,先解决我当前的问题。

过一遍文档: 配置: config/filesystems.php 默认的驱动是 'local',默认的目录的根路径是 'storage_path('app')' /* 注意: 根路径是 'storage/app',所以我们的 '/' === 'storage/app',且操作文件范围都不能超过 'storage/app/',否则报错! Path is outside of the defined root 解决方法: 很多时候,我们可能需要存储到不同的目录,我们总不能修改 '默认配置'。

所以,我们可能更想动态的修改默认的 '根目录',查看了下 laravel/Filesystem,未提供接口!所以,我们只能自己在调用前,修改默认配置: 使用config($key, $default),我们来修改默认的配置项 config(['filesystems.drivers.local.root' => base_path()]) // laravel公共函数,提供了该函数,可以参看源码

方法:

1.获取其他驱动

Storage::disk('local');
Storage::disk('local')->get('avatar.jpg');
// 在local驱动下,获取avatar.jpg文件内容

2.如果使用默认驱动,可省略

disk('local')
Storage::get('avatar.jpg');

3.get() - 获取文件内容,返回文件的 '原生字符串'

4.exists('avatar.jpg') - 文件是否存在

5.size('avatar.jpg') - 获取文件大小,单位为 '字节'

6.lastModified('avatar.jpg') - 文件最后一次修改时间,'unix时间戳'

7.put('avatar.jpg', $content) - 写入文件,支持 '内容写入' put('avatar.jpg', $resource) - 写入文件,支持 '资源写入'(处理大文件时,推荐使用文件流)

8.copy('old.txt', 'new.txt') - 复制文件

9.move('old.txt', 'new.txt') - 移动文件

10.prepend('file.txt', '头追加') - 插入内容到文件头部

11.append('file.txt', '尾追加') - 插入内容到文件尾部

12.delete('file.txt') - 删除单个 delete(['1.txt', '2.txt']); - 删除多个

13.files('test')- 获取目录下所有文件

14.allFiles('test') - '递归' 获取目录下所有文件

15.directories('test') - 获取目录下所有目录

16.allDirectories('test') - '递归' 获取目录下所有目录

17.makeDirectory('test') - 创建目录。支持 '递归创建' makeDirectory('test/dong/xue/min')

18.deleteDirectory('test') - 删除目录。注意:!!移除目录下的所有文件和目录!!

注意: laravel的文件系统处理,使用的是 'thephpleague/flysystem',提供的api进行过封装,并非是 'thephpleague/flysystem' 默认的方法!2个不同! 要想使用原生的 'thephpleague/flysystem' 方法,不能使用 Storage,2者不同

Original url: Access
Created at: 2018-09-29 19:46:55
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论