Frage

Ich arbeite an einem Upload-Skript.

Wenn ein Benutzer eine Datei hochgeladen und es existiert bereits Ich mag den Benutzer warnen (das ist alles durch Ajax) und gibt ihnen die Möglichkeit, es zu ersetzen oder löschen.

Statt die Datei zu bewegen, Ich war gespannt, ob ich konnte einfach die Datei in tmp verlassen und den Pfad zu dieser Datei in der Ajax-Antwort übergeben zurück.

Wenn sie Benutzer sagt überschreiben die alte Datei in dem Ajax-Request den Weg zurück zu PHP übergeben, die auf die Datei an die Arbeit geht weiter.

Damit dies funktioniert, aber ich muss wissen, wie lange eine Datei bleibt in PHP tmp dir

War es hilfreich?

Lösung

Dateien durch POST hochgeladen gelöscht werden direkt nach dem PHP-Skript seine Ausführung beendet hat.

Nach php.net : „Die Datei wird aus dem temporären Verzeichnis am Ende des Antrags gelöscht werden, wenn sie nicht weggezogen oder umbenannt werden.“

Andere Tipps

Für hochgeladene Dateien, die manuellen Zustände :

Die Datei wird aus der gelöscht werden temporäres Verzeichnis der am Ende Anfrage, wenn es wurde nicht weggezogen oder umbenannt werden.

Dateien, die daher gehalten werden sollen, sollte an eine andere Stelle verschoben werden.

Generell als Ihre Frage Titel könnte bedeuten, temporäre Ordner werden links vom System gereinigt werden. Dies gilt bei der Verwendung von Funktionen wie tempnam oder tmpfile , oder einfach, wenn in das temporäre Verzeichnis zu schreiben (siehe sys_get_temp_dir ).

In Ubuntu, wird dies bei jedem Neustart des Systems durchgeführt oder in einem Zeitintervall, wie in /etc/default/rcS definiert.

In einigen Red Hat basierte Distributionen, wird getan, um den tmpwatch Dienstprogramm von einem Cronjob verwenden. In anderen Ländern wird die /tmp Trennwand angebracht, um das tmpfs Dateisystem verwenden, die zu einem RAM-Disk ähnlich ist (also wenn der Computer heruntergefahren gereinigt werden).

Ein anderer bekannter Mechanismus ist eine Größenschwelle, was bedeutet, dass das temporäre Verzeichnis wird von den älteren Dateien bereinigt werden, wenn sie eine bestimmte Größe erreicht hat.

Es gibt drei Variablen, die Notwendigkeit, in PHP festgelegt werden, um sicherzustellen, dass Garbage Collection des Verzeichnisses / tmp geschieht richtig und sie sind:

session.gc_maxlifetime = 21600
session.gc_probability = 1
session.gc_divisor = 100

Set session.gc_maxlifetime die Anzahl der Sekunden, die Sie jede tmp-Datei zuletzt wollen, bevor es gelöscht wird. Wenn Sie an den Admin in OpenCart anmelden, das ist die Anzahl der Sekunden, bis Sie automatisch angemeldet sein wird. Zum Beispiel eine halbe Stunde zu setzen, würden Sie 60 Sekunden mal 30 Minuten tun, was ein Wert von 1800 Sekunden betragen würde.

Die beiden anderen Variablen beziehen sich auf, wenn der Garbage Collector ausgeführt wird, und es ist wichtig, dass sie auf die Werte oben gesetzt werden, wenn Sie Probleme mit diesem haben.

Mehr Infos hier: https://www.antropy.co .uk / Blog / OpenCart-php-session-tmp-Dateien füllende-up /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top