Supprimer un fichier qui n'est pas en cours de téléchargement

Eléphant du PHP | 246 Messages

23 nov. 2008, 17:56

Hello!

Voilà, le visiteur peut choisir les fichier à ajouter à l'archive. Mon script créé une archive zip puis envoie le lien pour le télécharger.

Mais il faut qu'après sont téléchargement, supprimer le fichier.

Il faudrait faire un script qui listes toutes les archives qui ont été générées, puis qui contrôle lesquelles ne sont pas en train d'être téléchargées, et les supprime.

Je sais pas vraiment si c'est possible, ou quels fonctions existent ?

Merci d'avance

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

23 nov. 2008, 18:13

Hello!

Voilà, le visiteur peut choisir les fichier à ajouter à l'archive. Mon script créé une archive zip puis envoie le lien pour le télécharger.

Mais il faut qu'après sont téléchargement, supprimer le fichier.
Selon ce que tu did ici, c'est l'utilisateur qui démarre la procédure d'archivage, il serait donc judicieux que le programme de cette procédure fasse tout :
  • 1. Ajouter le fichier choisi par l'utilisateur à l'archive
    2. Créer l'archive
    3. Envoyer le fichier archive directement à l'utilisateur
    4. Supprimer l'archive envoyée
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

ViPHP
ViPHP | 3607 Messages

23 nov. 2008, 18:32

Et si tu n'arrives pas à reprendre là main pour l'étape quatre, et bien tu informe ton utilisateur que l'archive sera supprimer ou bout de par exemple 24h, et tu fais un système de purge...
(soit par cron, soit intégré à une de tes pages)

Eléphant du PHP | 246 Messages

23 nov. 2008, 19:05

Pour l'étape 4, admétons qu'il quitte le téléchargement, ou qu'il y a un plantage, la dernière instruction qui va supprimer le fichier ne vas pas se faire.

Pour la suppression au bout de 24h, je n'y avais pas pensé, c'est une idée ^^

Hum je viens de penser à quelque chose. Lorsque j'envoie au navigateur, j'envoie dans une boucle en plusieurs partie.
Après l'envoie, je met à jour dans une table l'heure, minute et seconde du dernier envoie.
Dans mon script qui supprimera les archive, je regarde si la l'heure du dernier envoie dépasse les 5mn par exemple.

Hum ça me parait du bricolage ma solution, ça risque de bien faire ramer la base je pense non ?

ViPHP
ViPHP | 3607 Messages

23 nov. 2008, 19:35

je ne pense pas que se soi une bonne idée de le faire après l'envoi, toujours par rapport à un éventuel plantage ou un arret de l'utilisateur, nan moi je me baserais sur un filemtime() de l'archive, et si ça dépasse tant de secondes, paf on supprime!