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 21/03/2007, 15h14   #1
Invité de passage
 
Inscription : avril 2005
Messages : 3
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 3
Points : 0
Points : 0
Par défaut [Upload] DOWNLOADER un fichier

Bonjour, j'ai souhaité installer un systeme upload/download sur mon site hébergé par free.fr.

L'upload a l'air de fonctionner même si parfois ça coince un peu ( a condition que le fichier fasse 2 még maxi).
Par contre quand je download le fichier et que je veux l'utiliser sur mon poste, le format n'est pas reconnu ( en word par exemple) .
Voici le script download.php sachant que les fichiers a downloader sur le serveur sont dans le dossier "upload" :
--------------------------------------------------------------------------
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
$tableau = explode (".", $file);
$nb_element_1 = count ($tableau) -1;
if ($tableau[$nb_element_1] != "php") {
        header("Content-disposition: attachment; filename=$file");
 
        header("Content-Type: application/force-download");
        header("Content-Transfer-Encoding: binary"); 
        header("Content-Length: ".filesize("./fichiers/".$file));
        header("Pragma: no-cache");
        header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
        header("Expires: 0");
        readfile("./upload/".$file);
}
else {
        header("Location: index.php");
}
?>
-------------------------------------------------------------------------
Le code permettant d'afficher la liste des fichiers a telecharger sur la page de l'utilisateur est le suivant :
 
 
// on ouvre le répertoire
$dossier = opendir ("./upload/"); 
 
// on regarde tous les éléments du dossier
while ($fichier = readdir ($dossier)) {
        // on teste la valeur de l'élément
        if ($fichier != "." && $fichier != "..") {
                $tableau = explode (".", $fichier);
                $nb_element_1 = count ($tableau) - 1;
                if ($tableau[$nb_element_1] != "php") {
                // si l'élément est bien un fichier (différent de . et de ..), et que sont extension n'est pas php, on affiche un lien vers notre script de téléchargement (download.php) avec en paramètre le nom du fichier à télécgarger
                        echo '<a href="./download.php?file='.$fichier.'">'.$fichier.'</a><br />';
                }
        }
} 
 
// on ferme le dossier
closedir ($dossier);


merci de m'aider
@+
giscar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2007, 09h11   #2
Membre éclairé
 
Avatar de TucSale
 
Inscription : novembre 2005
Messages : 265
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : novembre 2005
Messages : 265
Points : 301
Points : 301
Envoyer un message via MSN à TucSale
bonjour,

je pense que
Code :
header("Content-Type: application/force-download");
n'est pas correcte, le mieux est que tu envois le header correspondant à l'extension de ton fichier.

Ou alors

Citation:
Instead of using
<?php
header('Content-Type: application/force-download');
?>
use
<?php
header('Content-Type: application/octet-stream');
?>
Some browsers have troubles with force-download.
fr.php.net
TucSale 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 05h23.


 
 
 
 
Partenaires

Hébergement Web