Question

Je travaille sur un script de téléchargement.

Si un utilisateur télécharge un fichier et il existe déjà, je veux avertir l'utilisateur (ce qui est tout au long de ajax) et leur donner la possibilité de le remplacer, ou annuler.

Au lieu de déplacer le fichier, J'étais curieux de savoir si je pouvais quitter le fichier dans tmp et passer de nouveau le chemin de ce fichier dans la réponse ajax.

S'ils utilisateur dit Ecraser l'ancien fichier dans cette demande ajax passe le chemin du retour à php qui continue à travailler sur le dossier.

Pour que cela fonctionne mais je dois savoir combien de temps un séjour de fichier dans php de tmp

Était-ce utile?

La solution

Fichiers uploadés par POST sont supprimés après la fin de droit script php son exécution.

Selon php.net : « Le fichier sera supprimé du répertoire temporaire à la fin de la demande si elle n'a pas été déplacé ou renommé. »

Autres conseils

Pour les fichiers uploadés, les états manuels :

  

Le fichier sera supprimé de la   temporaire à la fin de la   demande si elle n'a pas été déplacé   ou renommé.

Les fichiers doivent être conservés devrait donc être déplacé vers un autre endroit.

De manière plus générale, comme le titre de votre question pourrait impliquer, les dossiers temporaires sont laissés à nettoyer par le système. Cela est vrai lorsque vous utilisez des fonctions comme tempnam ou tmpfile , ou tout simplement lors de l'écriture dans le répertoire temporaire (voir sys_get_temp_dir ).

Dans Ubuntu, cela se fait à chaque redémarrage du système, ou à un intervalle de temps, tel que défini dans /etc/default/rcS.

Dans certains à base de Red Hat distros, il est fait à l'aide de l'utilitaire tmpwatch d'un cronjob. Dans d'autres cas, la partition /tmp est monté à l'aide du système de fichiers tmpfs, qui est semblable à un disque RAM (donc en cours de nettoyage se ferme lorsque les informatiques vers le bas).

Un autre mécanisme connu est un seuil de taille, ce qui signifie que le répertoire temporaire sera nettoyé des anciens fichiers lorsqu'il atteint une certaine taille.

Il y a trois variables qui doivent être définies en PHP pour faire en sorte que Garbage Collection du répertoire / tmp arrive correctement et ils sont:

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

Set session.gc_maxlifetime pour être le nombre de secondes que vous voulez que chaque fichier tmp dernier avant qu'il ne soit supprimé. Si vous vous connectez à l'administrateur dans OpenCart, c'est le nombre de secondes jusqu'à ce que vous serez connecté automatiquement. Par exemple, pour régler une demi-heure, vous feriez 60 secondes fois 30 minutes qui serait une valeur de 1800 secondes.

Les deux autres variables sont liées au moment où le Garbage Collector courra, et il est important qu'ils sont fixés aux valeurs ci-dessus si vous rencontrez des problèmes avec cela.

Plus d'infos ici: https://www.antropy.co .uk / blog / opencart-php-session-tmp-files-rEMBLAYAGE /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top