PHP unlink Datei wird nur nicht angezeigt

...komplette Frage anzeigen

2 Antworten

Wie kann ich das Bild endgültig löschen?

Du bist schon am richtigen Weg, unlink() ist die Funktion die das bewerkstelligt und die musst du auch benutzen um die Datei zu löschen.

Wieso wird das Bild nicht komplett gelöscht?

Das kann ich dir nicht genau sagen. Der Kommentar bzw. die Dokumentation der Funktion gibt ja Hinweise darauf wann es nicht funktioniert (Datei nicht vorhanden, keine Berechtigungen, es gibt einen weiteren Link zur Datei oder gerade von anderem Prozess geöffnet). Daraufhin solltest du auch die Situation untersuchen und eine der genannten Ursachen nach der anderen ausschließen (also schauen ob der Pfad stimmt, ob du Schreibberechtigungen hast und die Datei nicht gerade geöffnet ist, etc).

Des Weiteren solltest du immer im Hinterkopf behalten, dass der Browser Mediendateien (vor allem Bilder) zwischenspeichert. Den Verlauf löscht, oder noch besser:

<head>
    ...
    <meta http-equiv="cache-control" content="no-cache">
    ...
</head>

in jede Ausgabeseite einfügen sollte den Browser anweisen dass er immer die Daten neu vom Server ziehen soll. Zumindest während der Entwicklung. Das kann einem zahlreiche Kopfschmerztabletten ersparen.

error_reporting(E_ALL); 

Ist auch noch empfehlenswert während der Entwicklung zu setzen um vom PHP-Server wegen jedem Mist angemeckert zu werden. Dann bekommt man schneller mit, wenns irgendwo schiefgeht (z.B. weil man eine Variable benutzt die man nie zugewiesen hat)

Antwort bewerten Vielen Dank für Deine Bewertung
Minding 27.11.2014, 17:37

Hi,

ich hab mir den Fehler jetzt mit Hilfe einer Log-Datei anzeigen lassen und zwar ist $_FILES['image'] nicht definiert.

Wieso?

$_FILES['image']['error'] ist leer.

-Minding

0
FaronWeissAlles 27.11.2014, 18:49
@Minding

Das kenn ich. Man sitzt ewig vor einem Problem, das eine total simple Lösung hat, aber kommt einfach nicht drauf. Man hätte so viel machen können, würde einem dieser Stein nicht im Weg liegen.

In solchen Situationen ist es sinnvoll einen 2. Entwickler drüber schauen zu lassen, da er nicht betriebsblind ist. Oder, falls man keinen Kollegen an der Hand hat, vom Problem Abstand nehmen, was anderes machen und sich nach einiger Zeit wieder mit dem Problem beschäftigen. Deswegen hab ich immer 1-2 weniger wichtige Projekte am laufen.

Aber auch wenn man so seine Zeit nicht komplett verschwendet, bleibt es extrem ärgerlich. Aber sehs mal so: Dieser Fehler bleibt dir in Erinnerung und wirst du sicher nicht so schnell erneut machen. Wann immer jetzt dein Files-Array leer bleibt denkst du sofort an den enctype und checkst das

1

EDIT:

Das Bild war nur in meiner Cache.

Nun wird das Bild gar nicht mehr angezeigt.

Ich kann auch immer noch keins Speichern.

-Minding

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?