2017-05-17 2 views
1

ich verwende Laravel 5.4 in meinem Projekt ich meine Bilder in Quelldatei in Laravel Klinge angezeigt es das Bild zeigt .. richtigHolen Sie sich das Bild Pfad in Ajax und löschen das Bild in Laravel 5.4

<div id="dis_img"> 
        @foreach($detail_dir_imgs as $detail_dir_img) 
         <img src="{{ asset($detail_dir_img) }}" height="230" width="200" id="pro_img"> 
         <span class="del_proimg">X</span> 
        @endforeach 
        </div> 

Jetzt ich bekomme das Bild src-Attribut in der del_proimg Klick-Funktion, was bedeutet, ich das Bild löschen will, wenn ich diese ID klicken und den Code in meiner Klick-Funktion

$('.del_proimg').click(function(){ 
     var img= $('#pro_img').attr("src"); 
     alert(img); 
     $.ajax({ 
     type: "GET", 
     url: '/deleteimg', 
     data: {'img':img}, 
     success: function(data){ 
      console.log("ajaxdata",data); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      console.log(JSON.stringify(jqXHR)); 
      console.log("AJAX error: " + textStatus + ' : ' + errorThrown); 
     } 
     }); 
    }); 

ist, wenn die ID geklickt wird es die imagepath erhalten und weitergeben die Daten zum Controller alles hat gut funktioniert, aber in meinem Controller, wenn ich den Bildpfad zu löschen versuchen, das Bild und mein Controller löschen doesnot Code ist

public function deleteimg(Request $request){ 
      $img =$request->img; 
      @unlink(public_path($img)); 
      return Response::json([ 
       'message' => $request->img 
      ], 200); 

     } 

Ist dies richtig ist, ich das auch versuchte File::delete($img) aber es ist nicht mein Bild in meinem Ordner löschen, aber kein Fehler zeigt mir bitte jemand helfen, diese isssue für mich

+0

Vielleicht Dateizugriffsrechte? –

Antwort

3

Sie übergeben die gesamte Bildquelle Funktion löschen deletimg als $ img. Senden Sie einfach den Bildnamen. Verwenden Sie dann die Verknüpfung (PFAD ZU IHREM BILD "/" BILDNAME). Wie Sie das Bild in puplic/uploads speichern können, dann verwenden Sie die Verknüpfung (public_path(). '/ Uploads /'.$ imageName);

+0

yeah danke, aber wie bekomme ich den Image-Namen allein in jquery – Karthiga

+0

Sie können die aktuelle $ img verwenden, wie es ist. Just explodieren Sie die $ img durch "/" und erhalten Sie die letzte Array-Element. –

+0

Kannst du mir den Code geben, den ich weiß, wie man explodieren Funktion – Karthiga

0

versuchen, diese

unlink(public_path().'/'.$img); 

diese Arbeit fein

+0

Aber zeigt mir einen internen Server Fehler – Karthiga

0

diese mig zu beheben ht Arbeit. Senden Sie einfach den Bildpfad durch den Ajax-Aufruf. Dies wird True zurückgegeben, wenn die Datei gelöscht wird. Und überprüfen Sie Ihre Route auch in der Datei web.php

+0

es funktioniert Ich fand, was das Problem ist, aber ich weiß wie ich die Lösung bekomme, wenn ich meine $ img Variable zurückgebe, zeigt es wie dieses 'Objekt {Nachricht:" http://birdys.app/ uploads/products/images/50/11474 ... M-Unisex-Tischdecken-9731474522719404-1_mini.jpg "}' in meinem Konsolenfenster, aber wenn ich versuche, "https://birdys.app" zu entfernen funktioniert es einwandfrei – Karthiga

+0

Irgendein anderes Problem als Datei löschen? –

Verwandte Themen