begin process at 2008 07 20 02:39:28
1 213 103 membres
26 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TÉLÉCHARGER PLUSIEURS FICHIERS EN 1 CLIC


Information sur la source

Catégorie :Astuces Classé sous : telechargement, download, multiple, plusieurs, fichier Niveau : Débutant Date de création : 09/03/2008 Vu : 4 999

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

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

  • /** 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&eacute;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);
  • ?>
/** 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&eacute;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.
  • signaler à un administrateur
    Commentaire de noobiz le 09/03/2008 15:39:37 9/10

    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.

  • signaler à un administrateur
    Commentaire de neo2k2 le 10/03/2008 09:35:34

    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.

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS