本文實(shí)例講述了Laravel5.1 框架文件管理操作。分享給大家供大家參考,具體如下:
Laravel提供了一套很好用的文件系統(tǒng) 方便于管理文件夾和文件,支持Amazon S3和Rackspace云存儲(chǔ)等驅(qū)動(dòng)。
1 配置
文件系統(tǒng)的配置文件在 config/filesyetems.php 中,且它的注釋寫(xiě)的很清楚了,此外你可以在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ǔ),所以特別說(shuō)下,我們可以通過(guò)修改'root'來(lái)修改我們的root路徑:
'local' => [
'driver' => 'local',
// 'root' => storage_path('app'), 在/storage/app/目錄
'root' => public_path('uploads'), // 在public/uploads/ 目錄
],
2 獲取硬盤(pán)實(shí)例
要進(jìn)行文件管理需要那到硬盤(pán)實(shí)例,我們可以通過(guò) Storage 門(mén)面的 disk 方法來(lái)獲取,之后就可以進(jìn)行我們想要的操作了:
public function index()
{
$disk = Storage::disk('local');
// 創(chuàng)建一個(gè)文件
$disk->put('file1.txt', 'Laravel Storage');
}
3 文件操作
3.1 獲取文件
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
// 取出文件
$file = $disk->get('test.txt');
dd($file);
}
我們可以使用get()方法獲取到文件 以字符串的形式傳入文件名就行,但是需要主意:如果你要取到子目錄以下的文件時(shí)需要傳入路徑,比如:$disk->get('subpath/.../.../.../file.txt');
3.2 判斷文件是否存在
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
// 取出文件
$exists = $disk->exists('image.png');
dd($exists); // false
}
3.3 獲取文件信息
文件大?。?/p>
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
// 取出文件
$size = Storage::size('/home/test.txt');
dd($size); // 4
}
最后修改時(shí)間:
public function index()
{
// 取到磁盤(pán)實(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()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
// 儲(chǔ)存文件
$disk->put('file2.txt', 'file2 content'); // 新建一個(gè)文件
}
3.5 Copy文件
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
// 拷貝文件 第一個(gè)參數(shù)是要拷貝的文件,第二個(gè)參數(shù)是拷貝到哪里
$disk->copy('home/test.txt','rename.txt');
}
3.6 移動(dòng)文件
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
// 拷貝文件 第一個(gè)參數(shù)是要移動(dòng)的文件,第二個(gè)參數(shù)是移動(dòng)到哪里
$disk->move('file2.txt', 'home/file.txt');
}
3.7 在文件開(kāi)頭/結(jié)尾添加內(nèi)容
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
// 在文件開(kāi)頭添加
$disk->prepend('file1.txt', 'test prepend');
// 在文件末尾添加
$disk->append('file1.txt', 'test append');
}
3.8 刪除文件
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
// 刪除單條文件
$disk->delete('test.txt');
// 刪除多條文件
$disk->delete(['test22.txt', 'icon.jpg']);
}
4 目錄操作
4.1 取到目錄下的文件
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
$directory = '/';
// 獲取目錄下的文件
$files = $disk->files($directory);
// 獲取目錄下的所有文件(包括子目錄下的文件)
$allFiles = $disk->allFiles($directory);
dd($files, $allFiles);
}
4.2 取到子目錄
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
$directory = '/';
// 獲取目錄下的子目錄
$directories = $disk->directories($directory);
// 獲取目錄下的所有子目錄(包括子目錄下的子目錄)
$allDirectories = $disk->allDirectories($directory);
dd($directories, $allDirectories);
}
4.3 創(chuàng)建目錄
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
// 創(chuàng)建目錄
$disk->makeDirectory('test');
$disk->makeDirectory('test1/test2');
}
4.4 刪除目錄
public function index()
{
// 取到磁盤(pán)實(shí)例
$disk = Storage::disk('local');
// 刪除目錄
$disk->deleteDirectory('test');
$disk->deleteDirectory('test1/test2');
}
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門(mén)與進(jìn)階教程》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(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 上傳圖片、文件等類(lèi)封裝
- PHP Laravel實(shí)現(xiàn)文件下載功能
- Laravel框架文件上傳功能實(shí)現(xiàn)方法示例
- Laravel基礎(chǔ)-關(guān)于引入公共文件的兩種方式
- 使用laravel指定日志文件記錄任意日志