2017-05-04 2 views
0
$path = public_path(). '/Images/'; 
$this->MakeDirectory($path); 

$this->DeleteOldProfileImage($path. \Auth::guard("api")->user()->ProfileImage); 

Wenn ich die URL gedruckt: Es ist wie folgt: C: \ xampp \ htdocs \ My \ Learning \ admin/public/Bilder/ajax-loader.gifProblem beim Löschen der Datei: Laravel 5.4

wie unten Code auf localhost, Datei existiert nicht.

private function DeleteOldProfileImage($filePath) { 
    if (\File::exists($filePath)) 
    {  
     \File::delete($filePath); 
    } 
} 

Wenn ich den gleichen Code auf dem Server ausführen, funktioniert es. Ich gehe davon aus, dass dies auf Schrägstriche zurückzuführen ist. Können Sie bitte vorschlagen?

Antwort

1

Versuchen Sie, Ihren Pfad durch realpath() auszuführen, der die gemischten Schrägstriche bereinigen und einen vollständig qualifizierten Pfad zurückgeben sollte.

Nach dem docs:

echo realpath('/windows/system32'); 

zurückkehren würde

C:\WINDOWS\System32 

versuchen So

$path = public_path(). '/Images/'; 
$this->MakeDirectory(realpath($path)); 
+0

läuft Ich habe versucht, dies: '$ path = realpath (public_path()); dd ($ path); 'und es gibt ** C: \ xampp \ htdocs \ Meine \ Learning \ admin \ public ** zurück und wenn ich folgendes versuche:' $ path = realpath (public_path(). '/ Images'); dd ($ pfad); 'es gibt falsch !!!! – Pankaj

+0

Wenn realpath() false zurückgibt, bedeutet dies, dass Ihr Pfad nicht existiert. Versuchen Sie es auch in Ihrem MakeDirectory() - Aufruf zu verwenden. – nageeb

+1

Danke für das Unterrichten der neuen Sache 'realpath()' – Pankaj