Laravel5.1 框架文件管理操作實(shí)例分析
本文實(shí)例講述了Laravel5.1 框架文件管理操作。分享給大家供大家參考,具體如下:
Laravel提供了一套很好用的文件系統(tǒng) 方便于管理文件夾和文件,支持Amazon S3和Rackspace云存儲(chǔ)等驅(qū)動(dòng)。
1 配置
文件系統(tǒng)的配置文件在 config/filesyetems.php 中,且它的注釋寫的很清楚了,此外你可以在disks數(shù)組中創(chuàng)建新的disk:
<?php
return [
/*
|--------------------------------------------------------------------------
| Default Filesystem Disk
|--------------------------------------------------------------------------
|
| Here you may specify the default filesystem disk that should be used
| by the framework. A "local" driver, as well as a variety of cloud
| based drivers are available for your choosing. Just store away!
|
| Supported: "local", "ftp", "s3", "rackspace"
|
*/
'default' => 'local',
/*
|--------------------------------------------------------------------------
| Default Cloud Filesystem Disk
|--------------------------------------------------------------------------
|
| Many applications store files both locally and in the cloud. For this
| reason, you may specify a default "cloud" driver here. This driver
| will be bound as the Cloud disk implementation in the container.
|
*/
'cloud' => 's3',
/*
|--------------------------------------------------------------------------
| Filesystem Disks
|--------------------------------------------------------------------------
|
| Here you may configure as many filesystem "disks" as you wish, and you
| may even configure multiple disks of the same driver. Defaults have
| been setup for each driver as an example of the required options.
|
*/
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'ftp' => [
'driver' => 'ftp',
'host' => 'ftp.example.com',
'username' => 'your-username',
'password' => 'your-password',
// Optional FTP Settings...
// 'port' => 21,
// 'root' => '',
// 'passive' => true,
// 'ssl' => true,
// 'timeout' => 30,
],
's3' => [
'driver' => 's3',
'key' => 'your-key',
'secret' => 'your-secret',
'region' => 'your-region',
'bucket' => 'your-bucket',
],
'rackspace' => [
'driver' => 'rackspace',
'username' => 'your-username',
'key' => 'your-key',
'container' => 'your-container',
'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/',
'region' => 'IAD',
'url_type' => 'publicURL',
],
],
];
一般情況下最常用的是local(本地)存儲(chǔ),所以特別說下,我們可以通過修改'root'來修改我們的root路徑:
'local' => [
'driver' => 'local',
// 'root' => storage_path('app'), 在/storage/app/目錄
'root' => public_path('uploads'), // 在public/uploads/ 目錄
],
2 獲取硬盤實(shí)例
要進(jìn)行文件管理需要那到硬盤實(shí)例,我們可以通過 Storage 門面的 disk 方法來獲取,之后就可以進(jìn)行我們想要的操作了:
public function index()
{
$disk = Storage::disk('local');
// 創(chuàng)建一個(gè)文件
$disk->put('file1.txt', 'Laravel Storage');
}
3 文件操作
3.1 獲取文件
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 取出文件
$file = $disk->get('test.txt');
dd($file);
}
我們可以使用get()方法獲取到文件 以字符串的形式傳入文件名就行,但是需要主意:如果你要取到子目錄以下的文件時(shí)需要傳入路徑,比如:$disk->get('subpath/.../.../.../file.txt');
3.2 判斷文件是否存在
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 取出文件
$exists = $disk->exists('image.png');
dd($exists); // false
}
3.3 獲取文件信息
文件大?。?/p>
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 取出文件
$size = Storage::size('/home/test.txt');
dd($size); // 4
}
最后修改時(shí)間:
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 取出文件
$time = Storage::lastModified('file1.txt'); // 1507701271
$time = Carbon::createFromTimestamp($time);
echo $time; // 2017-10-11 05:54:31
}
3.4 儲(chǔ)存文件
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 儲(chǔ)存文件
$disk->put('file2.txt', 'file2 content'); // 新建一個(gè)文件
}
3.5 Copy文件
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 拷貝文件 第一個(gè)參數(shù)是要拷貝的文件,第二個(gè)參數(shù)是拷貝到哪里
$disk->copy('home/test.txt','rename.txt');
}
3.6 移動(dòng)文件
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 拷貝文件 第一個(gè)參數(shù)是要移動(dòng)的文件,第二個(gè)參數(shù)是移動(dòng)到哪里
$disk->move('file2.txt', 'home/file.txt');
}
3.7 在文件開頭/結(jié)尾添加內(nèi)容
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 在文件開頭添加
$disk->prepend('file1.txt', 'test prepend');
// 在文件末尾添加
$disk->append('file1.txt', 'test append');
}
3.8 刪除文件
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 刪除單條文件
$disk->delete('test.txt');
// 刪除多條文件
$disk->delete(['test22.txt', 'icon.jpg']);
}
4 目錄操作
4.1 取到目錄下的文件
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
$directory = '/';
// 獲取目錄下的文件
$files = $disk->files($directory);
// 獲取目錄下的所有文件(包括子目錄下的文件)
$allFiles = $disk->allFiles($directory);
dd($files, $allFiles);
}
4.2 取到子目錄
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
$directory = '/';
// 獲取目錄下的子目錄
$directories = $disk->directories($directory);
// 獲取目錄下的所有子目錄(包括子目錄下的子目錄)
$allDirectories = $disk->allDirectories($directory);
dd($directories, $allDirectories);
}
4.3 創(chuàng)建目錄
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 創(chuàng)建目錄
$disk->makeDirectory('test');
$disk->makeDirectory('test1/test2');
}
4.4 刪除目錄
public function index()
{
// 取到磁盤實(shí)例
$disk = Storage::disk('local');
// 刪除目錄
$disk->deleteDirectory('test');
$disk->deleteDirectory('test1/test2');
}
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。
- Laravel 5使用Laravel Excel實(shí)現(xiàn)Excel/CSV文件導(dǎo)入導(dǎo)出的功能詳解
- vuejs+element-ui+laravel5.4上傳文件的示例代碼
- 修改Laravel5.3中的路由文件與路徑
- 在Laravel5中正確設(shè)置文件權(quán)限的方法
- PHP框架laravel的.env文件配置教程
- Laravel最佳分割路由文件(routes.php)的方式
- PHP Laravel 上傳圖片、文件等類封裝
- PHP Laravel實(shí)現(xiàn)文件下載功能
- Laravel框架文件上傳功能實(shí)現(xiàn)方法示例
- Laravel基礎(chǔ)-關(guān)于引入公共文件的兩種方式
- 使用laravel指定日志文件記錄任意日志
相關(guān)文章
PHP內(nèi)核學(xué)習(xí)教程之php opcode內(nèi)核實(shí)現(xiàn)
opcode是計(jì)算機(jī)指令中的一部分,用于指定要執(zhí)行的操作, 指令的格式和規(guī)范由處理器的指令規(guī)范指定,通過本文給大家介紹PHP內(nèi)核學(xué)習(xí)教程之php opcode內(nèi)核實(shí)現(xiàn),感興趣的朋友一起學(xué)習(xí)吧2016-01-01
PHP設(shè)計(jì)模式之適配器模式(Adapter)原理與用法詳解
這篇文章主要介紹了PHP設(shè)計(jì)模式之適配器模式(Adapter)原理與用法,結(jié)合實(shí)例形式詳細(xì)分析了適配器模式的概念、原理、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-12-12
PHP設(shè)計(jì)模式之適配器模式代碼實(shí)例
這篇文章主要介紹了PHP設(shè)計(jì)模式之適配器模式代碼實(shí)例,本文講解了目標(biāo)、角色、應(yīng)用場(chǎng)景、優(yōu)勢(shì)等內(nèi)容,并給出代碼實(shí)例,需要的朋友可以參考下2015-05-05
PHP實(shí)現(xiàn)簡(jiǎn)單網(wǎng)站訪客統(tǒng)計(jì)的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于PHP實(shí)現(xiàn)簡(jiǎn)單網(wǎng)站訪客統(tǒng)計(jì)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
php實(shí)現(xiàn)產(chǎn)品加入購物車功能(1)
這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)產(chǎn)品加入購物車功能,具有一定的參考價(jià)值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
thinkphp實(shí)現(xiàn)like模糊查詢實(shí)例
這篇文章主要介紹了thinkphp實(shí)現(xiàn)like模糊查詢,以實(shí)例形式講述了字符串形式及數(shù)組形式作為查詢條件的like模糊查詢實(shí)現(xiàn)方法,是非常具有實(shí)用價(jià)值的技巧,需要的朋友可以參考下2014-10-10

