Ich bin neu in Laravel. Ich habe versucht, einige Dateien aus dem öffentlichen Ordner meines Projekts zu löschen. Definierte 'löschen' Funktion alsLaravel. unlink ('Dateipfad'): Berechtigung verweigert
public function delete($id)
{
$files = File::find($id);
$filedelete = $files['name'];
Storage::delete('public/upload/',$filedelete);
$files->delete();
return back();
}
folgen, wenn ich löschen drücken Eingabe meiner Ansicht
<a href="{{ action('[email protected]',$link['id']) }}" class="btn btn warning">
<button id="elimina" class="btn btn-danger" type="submit">Elimina</button>
</a>
mit dieser Strecke in web.php
Route::get('/showFile/{id}/delete',['as'=>'delete', 'uses'=>'[email protected]']);
es gibt mir diese Fehlermeldung
unlink(C:\wamp64\www\laravel\[nameproject]\storage\app\public/upload): Permission denied
(Probieren) zu sein so klar wie möglich, lade ich eine Datei in einer Datenbank und in diesem Ordner hoch. $ id ist der Primärschlüssel der Tabelle, in der sich die Referenz dieser Datei befindet. Ich denke, mein Problem ist mit $ files ['name'], denn wenn ich den genauen Namen der Datei schreibe, funktioniert es. Aber ich muss das Löschen dynamisch machen. Ich hoffe klar zu sein, es tut mir leid, wenn nicht.
Vielen Dank im Voraus. Alles Gute.
PS Mit dieser Linie in Funktion löschen, es funktioniert
Storage::delete('public/upload/[filename]');
bearbeiten
$files = File::find($id);
$filedelete = $files['name'];
return "".$filedelete;
es gibt mir den richtigen Namen der Datei. Also, mein Problem ist nur, wie man es aus diesem Ordner löscht?
Ist Ihr Laufwerk C geschützt durch UAC oder es ist nur Admin-Zugang? –
Kein Schutz, nur Administratorzugriff. Ich kann Dateien hinzufügen und bearbeiten, nur nicht löschen, wenn ich den Namen der Datei nicht manuell eingeben –
Wenn Sie denken, das Problem mit dem Namen ist, geben Sie den Namen vor dem Löschen und sehen, ob es wie Sie erwarten. Wenn Sie eine Datei auf die Festplatte schreiben, gehört sie nicht unbedingt demselben Benutzer wie die php delete-Funktion. –