# 文件与目录操作
### 介绍
借助Laravel和出色的[Flysystem](https://github.com/thephpleague/flysystem)PHP软件包,Oct提供了强大的文件系统抽象。Flysystem集成提供了易于使用的驱动程序,可用于处理本地文件系统,Amazon S3和Rackspace Cloud Storage。更好的是,在这些存储选项之间切换非常简单,因为每个系统的API都相同。
### [](https://octobercms.com/docs/services/filesystem-cdn#configuration)组态
文件系统配置文件位于`config/filesystems.php`。在此文件中,您可以配置所有“磁盘”。每个磁盘代表一个特定的存储驱动程序和存储位置。配置文件中包含每个受支持的驱动程序的示例配置。因此,只需修改配置以反映您的存储首选项和凭据。
当然,您可以配置任意数量的磁盘,甚至可能有多个使用相同驱动程序的磁盘。
#### 当地司机
使用`local`驱动程序时,请注意所有文件操作都相对于`root`配置文件中定义的目录。默认情况下,此值设置为`storage/app`目录。因此,以下方法会将文件存储在`storage/app/file.txt`:
~~~
Storage::disk('local')->put('file.txt', 'Contents');
~~~
#### 其他驱动程序先决条件
在使用S3或Rackspace驱动程序之前,您需要安装[Drivers plugin](http://octobercms.com/plugin/october-drivers)。
### [](https://octobercms.com/docs/services/filesystem-cdn#basic-usage)基本用法
### [](https://octobercms.com/docs/services/filesystem-cdn#obtaining-disk-instances)获取磁盘实例
该`Storage`门面可以用来与您的任何配置的磁盘进行交互。例如,您可以使用`put`外观上的方法将化身存储在默认磁盘上。如果在`Storage`不首先调用`disk`方法的情况下在外观上调用方法,则该方法调用将自动传递到默认磁盘:
~~~
$user = User::find($id);
Storage::put(
'avatars/'.$user->id,
file_get_contents(Request::file('avatar')->getRealPath())
);
~~~
使用多个磁盘时,可以使用外观`disk`上的方法访问特定磁盘`Storage`。当然,您可以继续链接方法以在磁盘上执行方法:
~~~
$disk = Storage::disk('s3');
$contents = Storage::disk('local')->get('file.jpg')
~~~
### [](https://octobercms.com/docs/services/filesystem-cdn#retrieving-files)检索文件
该`get`方法可以用于检索给定文件的内容。该文件的原始字符串内容将通过以下方法返回:
~~~
$contents = Storage::get('file.jpg');
~~~
该`exists`方法可用于确定磁盘上是否存在给定文件:
~~~
$exists = Storage::disk('s3')->exists('file.jpg');
~~~
#### 文件元信息
该`size`方法可用于获取文件大小(以字节为单位):
~~~
$size = Storage::size('file1.jpg');
~~~
该`lastModified`方法返回上次修改文件的UNIX时间戳:
~~~
$time = Storage::lastModified('file1.jpg');
~~~
### [](https://octobercms.com/docs/services/filesystem-cdn#storing-files)储存档案
该`put`方法可以用于在磁盘上存储文件。您也可以将PHP传递`resource`给该`put`方法,该方法将使用Flysystem的基础流支持。在处理大文件时,强烈建议使用流:
~~~
Storage::put('file.jpg', $contents);
Storage::put('file.jpg', $resource);
~~~
该`copy`方法可用于将现有文件复制到磁盘上的新位置:
~~~
Storage::copy('old/file1.jpg', 'new/file1.jpg');
~~~
该`move`方法可用于将现有文件移动到新位置:
~~~
Storage::move('old/file1.jpg', 'new/file1.jpg');
~~~
#### 在文件之前/之后
该`prepend`和`append`方法,让你轻松地插入在文件的开头或结尾的内容:
~~~
Storage::prepend('file.log', 'Prepended Text');
Storage::append('file.log', 'Appended Text');
~~~
### [](https://octobercms.com/docs/services/filesystem-cdn#deleting-files)删除档案
该`delete`方法接受单个文件名或文件数组以从磁盘中删除:
~~~
Storage::delete('file.jpg');
Storage::delete(['file1.jpg', 'file2.jpg']);
~~~
### [](https://octobercms.com/docs/services/filesystem-cdn#directories)目录
#### 获取目录中的所有文件
该`files`方法返回给定目录中所有文件的数组。如果要检索给定目录中所有文件的列表,包括所有子目录,则可以使用以下`allFiles`方法:
~~~
$files = Storage::files($directory);
$files = Storage::allFiles($directory);
~~~
#### 获取目录中的所有目录
该`directories`方法返回给定目录中所有目录的数组。此外,您可以使用该`allDirectories`方法来获取给定目录内的所有目录及其所有子目录的列表:
~~~
$directories = Storage::directories($directory);
// Recursive...
$directories = Storage::allDirectories($directory);
~~~
#### 建立目录
该`makeDirectory`方法将创建给定目录,包括任何所需的子目录:
~~~
Storage::makeDirectory($directory);
~~~
#### 删除目录
最后,`deleteDirectory`可以使用删除磁盘中的目录,包括其所有文件:
~~~
Storage::deleteDirectory($directory);
~~~
- 基本说明
- 基本操作
- October cms 安装
- 后台控制器路径
- 图标
- 获取安装网上的插件/主题
- 插件构造器使用
- 定时任务
- October后台控制器
- vscode编辑器
- ajax操作
- 使用
- ajax更新组件
- ajax属性API
- JavaScript API
- ajax综合使用
- 主题
- 多语言主题
- 安装市场主题
- 主题程序处理
- 主题
- 页面
- 部件
- 布局
- 内容
- 组件
- 媒体
- 主题表单操作
- 表单使用
- 表单后端程序处理
- 插件
- 自定义插件
- 插件说明
- 插件导航条
- 插件数据库设置
- 插件的设置管理
- 插件的配置文件config
- 组件
- app服务
- app容器
- 扩展行为
- 缓存
- Collection类
- Lazy Collections
- Collection方法
- 助手函数
- 数组助手函数
- 路径助手函数
- 玄乐助手函数
- 其他助手函数
- 错误与记录
- 事件处理
- HTML页面
- 文件与目录操作
- 散列和加密
- 邮件
- 邮件内容
- 邮件发送
- 分页
- 模板解析器
- 动态解析器语法
- 队列消息
- 请求与输入
- 响应
- 视图
- 路由器
- 配置
- 验证操作
- 处理错误消息
- 错误消息与视图
- 可用的验证规则
- 有条件的验证规则
- 验证数组
- 错误消息
- 自定义验证规则
- 模型操作
- 定义模型与其属性
- 检索模型
- 插入与更新
- 删除模型
- 查询范围
- 事件操作
- 关联操作
- 定义关系
- 关系类型
- 多肽关系
- 关系查询
- 渴望加载
- 插入模型
- 数据库操作
- 基本用法
- 数据表结构
- 查询连贯操作
- 结果检索
- select子句
- 插入更新
- where子句
- 排序,分组,限制和偏移
- 文件附件
- Collection操作
- 属性操作
- 系列化json
- 数据库属性
- 数据库行为
- 控制器
- 后台控制器定义
- 后台页面
- 后台组件
- 后台表单
- 表单组件
- 表单视图
- 表单行为
- 后台列表
- 列表行为
- 列表过滤器
- 可用列类型
- 关系行为
- 关系行为类型
- 扩展关系行为
- 列表排序操作
- 导入导出操作
- 用于与权限
- corlate模板修改
- 修改顶部导航
- laravel问题
- 控制器不存在
- 控制器
- 路由组
- laravel笔记
- laravel 安装
- 伪静态配置
- 依赖注入 & 控制器
- 中间件
- 路由文件
- 视图