Page 1 sur 1

faire patienter les users pdt la création de fichier zip et suppression du zip

Posté : 31 juil. 2015, 15:57
par vanes83
Bonjour,
j'ai une page php contenant un lien pour télécharger une archive zip qui est créé au moment du click vers la page download_site.php.
Je souhaiterais que pendant la création de cette archive, j'affiche un message ou une image qui fasse patienter.
De même je n'arrive pas à supprimer mon zip à la fin du téléchargement.
Mon zip se crée bien et se met au téléchargement, ça ya pas de soucis.
Pour le message d'attente j'ai pensé à du java mais pas moyen.

page.php
echo "<a href='download_site.php?archive=$archive&chemin=$racine'><img src='images/telecharger_min.jpg' alt='Télécharger le site' border=0></img></a><br><br>";
download_site.php
$file = $_GET['archive'];
$chemin=$_GET['chemin'];

require_once("fonctions/zip.php");

$file="TEMP_ZIP/".$file;
Zip($chemin,$file);
if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}
ignore_user_abort();
unlink($file);

Re: faire patienter les users pdt la création de fichier zip et suppression du zip

Posté : 31 juil. 2015, 16:13
par tof73
1. un onclick="attendre()" dans le <a> avec dans la fonction, un changement de statut pour un élément qui était auparavant caché.
2. il faut mettre unlink($file); avant exit

Re: faire patienter les users pdt la création de fichier zip et suppression du zip

Posté : 03 août 2015, 11:41
par vanes83
Le n°2 fonctionne ok on est bon
Sinon dans ma balise <a> j'ai mis
onclick='document.getElementById('message').style.display='block'; return true;'
et dans ma page
<div id="message" style="display:none;">Veuillez patienter s.v.p.</div>
Mais quand je clique sur mon lien rien ne se passe, j'attend momn téléchargement mais le message ne s'affiche pas.
Par ailleurs, une fois mon zip téléchargé, est ce que le message va disparaître, je ne pense pas.

Je suis nulle en javascript, il me foudrait une petite barre de défillement qui passe devant tout.

Merci.

Re: faire patienter les users pdt la création de fichier zip et suppression du zip

Posté : 28 août 2015, 11:20
par vanes83
Bonjour, Je relance car j'ai toujours pas trouvé de solution..

Re: faire patienter les users pdt la création de fichier zip et suppression du zip

Posté : 30 août 2015, 20:38
par soleil12345
Salut, tu peux donner aussi ton class zip.php pour tester

Re: faire patienter les users pdt la création de fichier zip et suppression du zip

Posté : 31 août 2015, 09:54
par vanes83
Dans mon fichier zip.php il n'y a que ma fonction recursive qui permet de créer une archive zip avec une arborescence, je n'ai pas de soucis avec, elle fait bien sont boulot. Mon soucis c'est comment mettr een place tout ça pour faire patienter mon utilisateur lorsque cette archive se crée, elle peut mettre un peu de temps selon sa taille.

Re: faire patienter les users pdt la création de fichier zip et suppression du zip

Posté : 31 août 2015, 13:41
par soleil12345
bonjour,
malheureusement on peut pas vérifier avec javascript, ni avec php, si le ficher à été téléchargé parcque on a pas d'accès à système de ficher d'un client . Il faut utiliser flash ou java à mon avis.

Re: faire patienter les users pdt la création de fichier zip et suppression du zip

Posté : 31 août 2015, 14:03
par ynx
Salut,
Attention aux guillemets dans l'attribut onclick : utilises des doubles quotes pour délimiter la valeur de l'attribut si tu veux utiliser des simples quotes à l'intérieur (ou l'inverse) :
<a onclick="document.getElementById('message').style.display='block'; return true;">lien</a>

Re: faire patienter les users pdt la création de fichier zip et suppression du zip

Posté : 31 août 2015, 16:45
par vanes83
Merci pour le problème j'avais trouvé pour le problème de guillemets, mon message s'affiche bien mais il ne disparait pas une fois le fichier téléchargé car la page principale page.php n'est pas rechargéé...