您好,登錄后才能下訂單哦!
本篇文章為大家展示了使用Laravel5.1 框架怎么實現文件管理操作,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Laravel提供了一套很好用的文件系統 方便于管理文件夾和文件,支持Amazon S3和Rackspace云存儲等驅動。
文件系統的配置文件在 config/filesyetems.php 中,且它的注釋寫的很清楚了,此外你可以在disks數組中創建新的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(本地)存儲,所以特別說下,我們可以通過修改'root'來修改我們的root路徑:
'local' => [ 'driver' => 'local', // 'root' => storage_path('app'), 在/storage/app/目錄 'root' => public_path('uploads'), // 在public/uploads/ 目錄 ],
要進行文件管理需要那到硬盤實例,我們可以通過 Storage 門面的 disk 方法來獲取,之后就可以進行我們想要的操作了:
public function index() { $disk = Storage::disk('local'); // 創建一個文件 $disk->put('file1.txt', 'Laravel Storage'); }
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 取出文件 $file = $disk->get('test.txt'); dd($file); }
我們可以使用get()方法獲取到文件 以字符串的形式傳入文件名就行,但是需要主意:如果你要取到子目錄以下的文件時需要傳入路徑,比如:$disk->get('subpath/.../.../.../file.txt');
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 取出文件 $exists = $disk->exists('image.png'); dd($exists); // false }
文件大小:
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 取出文件 $size = Storage::size('/home/test.txt'); dd($size); // 4 }
最后修改時間:
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 取出文件 $time = Storage::lastModified('file1.txt'); // 1507701271 $time = Carbon::createFromTimestamp($time); echo $time; // 2017-10-11 05:54:31 }
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 儲存文件 $disk->put('file2.txt', 'file2 content'); // 新建一個文件 }
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 拷貝文件 第一個參數是要拷貝的文件,第二個參數是拷貝到哪里 $disk->copy('home/test.txt','rename.txt'); }
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 拷貝文件 第一個參數是要移動的文件,第二個參數是移動到哪里 $disk->move('file2.txt', 'home/file.txt'); }
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 在文件開頭添加 $disk->prepend('file1.txt', 'test prepend'); // 在文件末尾添加 $disk->append('file1.txt', 'test append'); }
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 刪除單條文件 $disk->delete('test.txt'); // 刪除多條文件 $disk->delete(['test22.txt', 'icon.jpg']); }
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); $directory = '/'; // 獲取目錄下的文件 $files = $disk->files($directory); // 獲取目錄下的所有文件(包括子目錄下的文件) $allFiles = $disk->allFiles($directory); dd($files, $allFiles); }
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); $directory = '/'; // 獲取目錄下的子目錄 $directories = $disk->directories($directory); // 獲取目錄下的所有子目錄(包括子目錄下的子目錄) $allDirectories = $disk->allDirectories($directory); dd($directories, $allDirectories); }
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 創建目錄 $disk->makeDirectory('test'); $disk->makeDirectory('test1/test2'); }
public function index() { // 取到磁盤實例 $disk = Storage::disk('local'); // 刪除目錄 $disk->deleteDirectory('test'); $disk->deleteDirectory('test1/test2'); }
上述內容就是使用Laravel5.1 框架怎么實現文件管理操作,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。