Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2006, 10h07   #1
Invité de passage
 
Inscription : mars 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 57
Points : 0
Points : 0
Envoyer un message via MSN à jadoo
Par défaut telechargement des fichiers en php

Bonjour,
j'ai un script qui force le telechargement d'un fichier dans un repertoire B comme indique:
le premier script


Code :
1
2
3
4
5
6
7
8
9
10
 
 
$dossier = opendir ("B/");
while ($fichier = readdir ($dossier))
{
  if ($fichier != "." && $fichier != "..")
  {
    echo '<a href="download.php?file='.$fichier.'">'.$fichier.'</a><br />';
  }
}

et le script download.php est:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
$contenue = file_get_contents('B/x.txt');
$nomdufichier = "x.txt";
$tailledufichier = filesize('B/x.txt');
 
@ob_end_clean();
@ini_set('zlib.output_compression','Off');
 
header('Pragma: public');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');
header('Content-Tranfer-Encoding: none');
header('Content-Type: application/octetstream; name="'.$nomdufichier.'"');
header('Content-Disposition: attachement; filename="'.$nomdufichier.'"');
header('Content-Length: '.$tailledufichier);
 
echo $contenue;
exit();




donc voila à l'execution du script je telecharge un fichier x.txt qui est unique dans ce repertoire.

maintenant si j'ai 3 fichiers x, y et z alors lors de telechargement de nimporte quel fichier parmi les trois, toujours le telechergement se fait pour le fichier x.

quelle est l'idée pour séparer celui la et à chaque clique de telechargement de chaque fichier ( x ou y ou z), j'obtiens le telechargement du fichier desiré.
Merci
jadoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 10h35   #2
Membre habitué
 
Inscription : mars 2003
Messages : 154
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 154
Points : 145
Points : 145
Envoyer un message via MSN à Orgied
Si j'ai bien compris, et d'apèrs tes exemples, il n'y a aucune interaction entre tes deux fichiers php.

Même si tu précises dans un lien quel fichier (viaz la variable $fichier) tu dois télécharger, tu n'en tiens absoluement pas compte dans le document php qui génère ton fichier.

De un, dans ton document à télécharger, modifie ce code :
Code :
1
2
3
$contenue = file_get_contents('B/x.txt');
$nomdufichier = "x.txt";
$tailledufichier = filesize('B/x.txt');
par un tableau pour le nombre de fichiers que tu as à télécharger, de cette forme là :

Code :
1
2
3
4
5
6
7
8
9
10
$files = array();
$files["x"]["contenu"] = file_get_contents('B/x.txt');
$files["x"]["nom"] = "x.txt";
$files["x"]["taille"] = filesize('B/x.txt');
$files["y"]["contenu"] = file_get_contents('B/y.txt');
$files["y"]["nom"] = "y.txt";
$files["y"]["taille"] = filesize('B/y.txt');
$files["z"]["contenu"] = file_get_contents('B/z.txt');
$files["z"]["nom"] = "z.txt";
$files["z"]["taille"] = filesize('B/z.txt');
Et ensuite, par rapport à la variable en GET ($fichier), tu affiche les données liée au fichier demandé.
Orgied est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2006, 14h57   #3
Invité de passage
 
Inscription : mars 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 57
Points : 0
Points : 0
Envoyer un message via MSN à jadoo
Par défaut pas compris

Citation:
Envoyé par Orgied
Si j'ai bien compris, et d'apèrs tes exemples, il n'y a aucune interaction entre tes deux fichiers php.

Même si tu précises dans un lien quel fichier (viaz la variable $fichier) tu dois télécharger, tu n'en tiens absoluement pas compte dans le document php qui génère ton fichier.

De un, dans ton document à télécharger, modifie ce code :
Code :
1
2
3
$contenue = file_get_contents('B/x.txt');
$nomdufichier = "x.txt";
$tailledufichier = filesize('B/x.txt');
par un tableau pour le nombre de fichiers que tu as à télécharger, de cette forme là :

Code :
1
2
3
4
5
6
7
8
9
10
$files = array();
$files["x"]["contenu"] = file_get_contents('B/x.txt');
$files["x"]["nom"] = "x.txt";
$files["x"]["taille"] = filesize('B/x.txt');
$files["y"]["contenu"] = file_get_contents('B/y.txt');
$files["y"]["nom"] = "y.txt";
$files["y"]["taille"] = filesize('B/y.txt');
$files["z"]["contenu"] = file_get_contents('B/z.txt');
$files["z"]["nom"] = "z.txt";
$files["z"]["taille"] = filesize('B/z.txt');
Et ensuite, par rapport à la variable en GET ($fichier), tu affiche les données liée au fichier demandé.

Bonjour

suite à votre reponse, en fait comme j'ai ecrit le code et je vous ai montré, comme j'ai un fichier x.txt ou en plusieurs fichiers, le telechargement se fait seulement pour le fichier x.txt.
maintenant, autrement dit je veux que le telechargement soit pour plus qu'un fichier alors que pour chaque fichier desiré et j'ai pas GET.

pouvez vous expliquer en plus votre idée avec un ex car comme vous avez proposé ca marche pas. je vous attends
merci
jadoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h26.


 
 
 
 
Partenaires

Hébergement Web