Laravel9 Storage::delete() でファイルの削除ができない。

Laravel9でアップロードした画像を削除ができません。
エラーも起きずそのままリダイレクト先に遷移します。
しかし画像が削除されません。

ProfileController.php

public function company_img_destroy(){ // 削除したい画像のパスを情報を取得する $delFileName = Auth::user()->company_img; // storage/app/public/images/company_imgから、画像ファイルを削除する Storage::delete('storage/images/company_img'.$delFileName); return redirect('mypage/dashboard')->with('successMessage', 'プロフィール情報を更新しました'); }

web.php

Route::get('company_img_destroy', [App\Http\Controllers\ProfileController::class, 'company_img_destroy'])->name('company_img_destroy'); Route::post('company_img_destroy', [App\Http\Controllers\ProfileController::class, 'company_img_destroy'])->name('company_img_destroy');

<form method="post" class="edit-profile-form" action="{{ route('mypage.edit-profile') }}" enctype="multipart/form-data"> @csrf <table class="edit-profile-form__table"> <tbody> <tr> <th> <p class="edit-profile-title">会社名(屋号)</p> <p class="edit-profile-title"></p> </th> <td> <input value="{{ $user->company_name }}" class="edit-profile-input" name="company_name" type="text"> </td> </tr> <tr> <th> <p class="edit-profile-title">フリガナ</p> <p class="edit-profile-title"></p> </th> <td> <input value="{{ $user->company_name_kana }}" class="edit-profile-input" name="company_name_kana" type="text"> </td> </tr> <tr> <th> <p class="edit-profile-title">プロフィール画像</p> </th> <td> <div class="myImage-wrap"> @if($user->company_img === null) <img id="preview" src="{{ asset('images/top_no_image.jpeg')}}" alt=""> @endif <img id="preview" src="{{ asset('storage/images/company_img/' . $user->company_img) }}" alt=""> </div> <input id="myImage" class="edit-profile-input" name="company_img" value="" type="file"> <a href="{{ route('company_img_destroy')}}" type="submit" value="削除" form="delate" name="del_id">削除</a> </td> </tr> <tr> <th> <p class="edit-profile-title">電話番号</p> </th> <td> <input value="@if(is_null($user->company_add)){{ old('company_tel') }}@else{{ $user->company_tel }}@endif" class="edit-profile-input" name="company_tel" type="text"> </td> </tr> </tbody> </table> <div class="edit-profile-submit"> <button class="edit-profile-submit__button" type="submit" value="保存する"> <span class="edit-profile-submit__button--txt">保存する</span> </button> </div> </form> {{-- company_img削除用のform。aタグ form="delate"と対 --}} <form action="post" id="delate" name="del_id"></form>

プロフィール編集用<form>タグの中に画像削除用のformを入れれなかったので、<form method="post" class="edit-profile-form" action="{{ route('mypage.edit-profile') }}" enctype="multipart/form-data"></form>の外に削除用フォーム<form action="post" id="delate" name="del_id"></form>を設置。

<a href="{{ route('company_img_destroy')}}" type="submit" value="削除" form="delate" name="del_id">削除</a>のform="delate" と<form action="post" id="delate" name="del_id"></form>id="delate"が対になるようにしています。

コメントを投稿

0 コメント