# 文件與目錄操作
### 介紹
借助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 安裝
- 偽靜態配置
- 依賴注入 & 控制器
- 中間件
- 路由文件
- 視圖