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 28/11/2010, 17h32   #1
Invité de passage
 
Inscription : février 2008
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 14
Points : 1
Points : 1
Par défaut Téléchargement (download) Problème avec FF 3.6.8

Bonjour,
Pour télécharger des fichiers de mon point de vue on peut utiliser deux méthodes:
-1- La simplisime:
Code :
header("Location: ".'lechemin/'.$nomfich);
-2- La compliquée:
Code :
1
2
3
4
5
6
7
8
9
10
11
header("Content-Description: File Transfer");
header("Content-disposition: attachment; filename = $nomfich");
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: $type\n"); // Surtout ne pas enlever le \n
 $longfich = filesize($chemin.$nomfich);
header("Content-Length: ".$longfich);
header("Pragma: no-cache");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
header("Expires: 0");
//Envoi du fichier dont le chemin est passé en paramètre
readfile($chemin.$nomfich);
-3- Les problèmes:
avec la méthode 1 IE 8 affiche un cadre bizarre pour les fichiers .odt
avec la méthode 2 Firefox 3.6.8 ne reconnait pas le type ( que j'envoie pourtant parfaitement dans $type) si le nom du fichier comporte un blanc

Quelqu'un aurait-il une idée? faut-il mettre un autre header?
Merci
TEXMAN1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 20h10   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
pour le problème des espaces dans le nom des fichiers, j'utilise ce code :
Code :
1
2
3
4
5
6
7
8
9
        $tailleFichier = strlen($contenuFichier);
 
        $nomFichier = str_replace('"', '\\"', $nomFichier);
 
        header('Content-Type: application/octet-stream');
        header("Content-Length: $tailleFichier");
        header("Content-Disposition: attachment; filename=\"$nomFichier\"");
 
        echo $contenuFichier;
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 21h10   #3
Invité de passage
 
Inscription : février 2008
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 14
Points : 1
Points : 1
Bon dieu mais c'est bien sur.
Citation:
Code :
 header("Content-Disposition: attachment; filename=\"$nomFichier\"");
Il faut mettre le nom entrequote!!!!
Je me suis déjà fait piéger par un truc similaire!
Merci merci c'est le genre de truc ou on peut chercher des heures.
TEXMAN1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web