Télécharger plusieurs fichiers en 1 clic

Soyez le premier à donner votre avis sur cette source.

Snippet vu 17 590 fois - Téléchargée 19 fois

Contenu du snippet

Voila une petite astuce pour lancer le téléchargement de plusieurs fichiers à la fois.
Ça tiens en 2 pages :
- start.php est la page sur laquelle doit pointer le lien lançant le téléchargement. Elle est a un double système de rafraîchissement : par une entête HTTP qui pointe vers la seconde page. Et par un javascript qui la met à jour.

- sender.php est la page envoyant les fichiers, un par appel qui lui est fait.
une liste de nom et une variable de session permettent de définir quel fichier est envoyé.

Source / Exemple :


/** start.php **/
<?php
	session_start();
	if (! session_is_registered('n'))
		$_SESSION['n'] = 0;

	if ($_SESSION['n'] < 3){
		header ('Refresh: 0, url="sender.php"');
?>
<html>
  <head>
    <script>
	setTimeout(function(){location.reload();},500);
    </script>
    <title></title>
  </head>
  <body>
   Proposition de transfert en cours...
  </body>
</html>
<?php
		exit;
	}else{
		session_unregister('n');
?>

<?php
	}
?>

<html>
  <head>
    <title></title>
  </head>
  <body>
    Proposition Terminée.
  </body>
</html>

/** sender.php **/
<?php
	session_start();
	if (! session_is_registered('n'))
		$_SESSION['n'] = 0;
	
	$files = array('test.txt','machin.txt','truc.txt');
	$file = $files[$_SESSION['n']];
	
	$sources = array('test.txt','test.txt','test.txt');
	$source = $sources[$_SESSION['n']];
	
	$_SESSION['n'] ++;
	
	header('Content-Disposition: attachment; filename="'.$file.'"');
	readfile($source);
?>

Conclusion :


Je n'ai testé ce script que sous FireFox.
Il est facile de l'améliorer, par exemple pour passer la liste de fichier en argument.

A voir également

Ajouter un commentaire

Commentaires

neo2k2
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
2
Je l'ai testée et je trouve cette source fort pratique. Je pense qu'il s'agit d'une bonne base pour, par exemple, un catalogue de soft ou de fichiers.

En ce sens, je pense que l'on pourrait l'améliorer en ajoutant une gestion par database et une compression gzip, par exemple, pour n'avoir qu'un seul et même fichier en téléchargement.
noobiz
Messages postés
617
Date d'inscription
lundi 1 octobre 2007
Statut
Membre
Dernière intervention
2 juillet 2009

Ben moi je dis bravo car j'ai essayé et j'ai cherché avant de me rendre compte que je suis meilleur en C++ donc ... 9/10.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.