Laravel – アップロードファイルの削除

ファイル削除の流れ

Storageファサードでファイルを保存したディスクを指定して、delete()メソッドの引数にファイルパスを渡して削除を実行。

  • ディスクは保存時と同じものを指定
  • ファイルパスは保存時にstore()で得られた戻り値、データベースに登録しているパスをそのまま使う。

実装例

ビュー

storageに保存したファイルのURLで使ったビューに、画像削除のフォームとボタンを追加する。

  • ファイルが保存されパスがセットされていれば、hidden属性のinput要素でそのパスを渡している
  • 画像削除ボタンを押すと/images/deleteへルーティング

ルーティング

ルーティングは以下のように設定。リソースベースだとURLにidを含めなければならないので、ここでは別途設定し、destroyアクションにルーティングしている。

コントローラー

storageに保存したファイルのURLで使ったコントローラーに、destroyアクションを追加する。

  • フォームのhidden属性のinput要素からパスを取得
  • パスがセットされていれば削除を実行
  • indexページにリダイレクト

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です