2017-10-30 5 views
0

Kann mir bitte jemand dabei helfen? Ich habe diesen Code auf Controller:Bild auf Laravel aus dem Speicher löschen

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

Und ich habe dies auf der Klinge:

<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> 

Und ich habe auch auf die Schaltfläche

<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> 

Und das img:

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

Ich brauche zu tun wenn ich auf den button klicke lösche das bild, kann mir bitte jemand helfen was ich hier falsch mache?

+0

Dann können Sie mit '' 'Speicher :: delete ($ filename);' '' – Mohammad

+0

Ist das wirklich 'deleteDirectory()'? Um Dateien zu löschen, müssen Sie 'delete()' stattdessen aufrufen. –

+0

Überprüfen Sie diesen Link: https://laravel.com/docs/5.5/filesystem © deleting-files –

Antwort

0

Statt Storage::disk('public')->deleteDirectory('/images/'.$element. '/'. $id); verwenden Storage::disk('public')->delete('/images/'.$element. '/'. $id);

Die erste verwendet wird und das gesamte Verzeichnis zu löschen. Außerdem sehe ich nicht, dass Sie den zweiten Parameter ($ id) übergeben. In diesem Fall wird der Code innerhalb des Blocks überhaupt nicht ausgeführt. Wenn Sie die ID benötigen, senden Sie sie bitte auch mit der Anfrage.

1

Verwenden Sie delete() anstelle von deleteDirectory(). Zum Beispiel

Storage::disk('public')->delete($image_url); 
Verwandte Themen