2017-10-30 12 views
0

誰か助けてくれますか? 私は、コントローラ上でこのコードを持っている:ストレージからlaravelの画像を削除する

public function deleteImage($element, $id){ 
    if($element != null && $id != null){ 
      Storage::disk('public')->deleteDirectory('/images/'.$element. '/'. $id); 
    } 
} 

を私はブレード上でこれを持っている:

<script> 
    $('.delete_image').click(function(){ 
     var img= $('#pro_img').attr("src"); 
     alert(img); // here is showing this myapp/public/images/questions/459/medium/11d487e5cdbde68dde65b4f396e67859 
     $.ajax({ 
     type: "GET", 
     url: '/deleteImage', 
     data: {'img':img}, 
     success: function(data){ 
      console.log("ajaxdata",data); 
     } 

     }); 
    }); 

</script> 

そして、私はまた、ボタン

<button type="button" value="{{-- {{ $i }} --}}" class="btn btn-flat btn-default btn-sm delete_image" id="delete_image" title="@lang('buttons.remove_option')"><i class="fa fa-trash-o" aria-hidden="true"></i> </button> 

そしてIMGあります

<img src="{{url('/')}}/images/questions/{{ $question->id }}/medium/{{ $question->question_image }}" class="answer-image-create" id="pro_img"> 

私は必要ですボタンをクリックして画像を削除すると、誰かが私がここで間違っていることを喜ばせることができますか?代わりにStorage::disk('public')->deleteDirectory('/images/'.$element. '/'. $id);使用Storage::disk('public')->delete('/images/'.$element. '/'. $id);

の最初のものは削除し、ディレクトリ全体に使用され

+0

はその後、あなたは '' 'ストレージを使用することができます::($ファイル名)を削除;' '' – Mohammad

+0

は本当に 'deleteDirectory()'ということですか?ファイルを削除するには、代わりに 'delete()'を呼び出す必要があります。 –

+0

このリンクを確認してください:https://laravel.com/docs/5.5/filesystem#deleting-files –

答えて

0

。 また、2番目のパラメータ($ id)を渡すこともありません。その場合、ブロック内のコードはまったく実行されません。 IDが必要な場合は、リクエストとともに送信してください。

1

deleteDirectory()の代わりにdelete()を使用します。例えば、

Storage::disk('public')->delete($image_url); 
関連する問題