87
86

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LaravelでStorageを使ったファイルおよびディレクトリの操作をまとめてみた

Last updated at Posted at 2019-07-04

はじめに

Laravelでファイルを取り扱った個人開発を行っている際にファイル保存の方法を調べた際に気になったため、調べてまとめました。
駅に貼られているチラシを見るように流し見していただければ幸いです。

Storageとは?

LaravelではFlysystem PHPパッケージによって提供されているファイルシステムを抽象化させたものを使えるように設定されている。
設定ファイルはconofig/filesystems.phpにあり、環境によって保存先のディレクトリが分けられている。らしい。 (引用:参考文献1)

今回はそんなStorageを使ったファイルおよびディレクトリの操作方法をまとめてみる。

基本的な書式

StorageFacadesを拡張して使われるもの。
なので書式は基本的に

 Storage::◯◯('hoge', 'fuga');

になる。

ファイル関連

ファイル保存

Storage::put

Storage::put('file_name', $file);

$fileを'file_name'という名前で保存することができます。

Storage::putFile

Storage::putFile('dir', $file);

$fileを'dir'に保存することができます。Storage::putFileでは
ファイル名は自動で設定されます。
また、

Storage::putFile('dir', $file, 'public');

とすることで$fileを一般公開したいという意思を伝えることができます。

Storage::putFileAs

Storage::putFileAs('dir', $file, 'file_name');

$fileを'dir'に'file_name'という名前で保存することができます。Storage::putFileAsでは自分でファイル名は設定することができます。

ファイル書き込み

Storage::prepend

Storage::prepend('file_name', 'hogegeeeee');

file_nameの先頭にhogegeeeeeを書き込むことができます。

Storage::append

Storage::append('file_name', 'fugagaaaaaa');

file_nameの末尾にfugagaaaaaaを書き込むことができます。

ファイルのコピー

Storage::copy

Storage::copy('old dir/file_name', 'new dir/file_name');

old dirにあるfile_nameをnew dirにコピーすることができます。

ファイルの移動

Storage::move

Storage::move('old dir/file_name', 'new dir/file_name');

old dirにあるfile_nameをnew dirに移動することができます。
また、

Storage::move('file_name', 'new_file_name');

file_nameの名前をnew_file_nameに変更できます。

ファイル削除

Storage::move

Storage::delete('file_name');

file_nameを削除することができます。
また、

Storage::delete(['file_name', 'file_name2']);

file_nameとfile_name2を削除することができます。

#ディレクトリ関連

ディレクトリ内の全ファイルを取得

Storage::files

Storage::files('dir');

dirの中の全ファイルを配列で返すことができます。

Storage::allFiles

Storage::allFiles('dir');

dirの中のサブディレクトリの中も含めた全ファイルを配列で返すことができます。

ディレクトリ内の全ディレクトリを取得

Storage::directories

Storage::directories('dir');

dirの中の全ディレクトリを配列で返すことができます。

Storage::allFiles

Storage:: allDirectories('dir');

dirの中のサブディレクトリの中も含めた全ディレクトリを配列で返すことができます。

ディレクトリ作成

Storage:makeDirectory

Storage:makeDirectory('dir');

dirという名前のディレクトリを作成することができます。

ディレクトリ削除

Storage:deleteDirectory

Storage:deleteDirectory('dir');

dirという名前のディレクトリを削除することができます。

終わりに

今回はStorageを使ったファイルおよびディレクトリ操作についてまとめてみました。
完全に自己満の記事ですが、何かの役に立てれば幸いです。
それでは、またどこかで。笑

#参考文献

  1. Laravel 5.5 ファイルストレージ
87
86
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
87
86

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?