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 23/02/2011, 11h57   #1
Invité de passage
 
Inscription : février 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 2
Points : 1
Points : 1
Par défaut Force download et fichier corrompu

Bonjour,
Souhaitant proposer le téléchargement d'une image (toujours encodé en JPEG) via boite de dialogue, j'ai implémenté une solution à base de header et "force-download" dont le code est situé ci-dessous :
Code :
1
2
3
4
5
6
7
8
9
 
//$imagePath contient le chemin d'accès et le nom ainsi que l'extention du fichier souhaité
if(file_exists($imagePath)) {
		header('Content-Type: application/force-download');
		header('Content-Disposition: attachment; filename='.basename($imagePath));
		header('Content-Transfer-Encoding: image/jpeg');
		header('Content-Length: ' . filesize($imagePath));
		readfile($imagePath);
	}
Lors de l'appel à cette page (par une autre), le fichier est correctement trouvé (file_exist renvoie true), la boite de dialogue s'affiche et le téléchargement opère, sauf que le fichier est toujours corrompu bien que présentant la bonne taille après téléchargement.

J'ai beau précisé des informations sur le header (Pragma, description, ...), le problème reste le même.

D'où peut-il venir ?

A noter: Le site est sous Code_Igniter et l'appel à la page est routée (en gros on accède à la page servant au téléchargement par le routage et non la page elle-même).
Koudja est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 12h09   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ouvre le fichier reçu avec un editeur de texte, tu as peut etre des éléments (une erreur PHP par exemple) au début.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 12h16   #3
Invité de passage
 
Inscription : février 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 2
Points : 1
Points : 1
Mea Culpa, en effet le fichier n'est pas une image mais une page HTML générée.

Je soupçonne fortement alors le routage de Code_Igniter d'être responsable de ce comportement.

D'ailleurs en écrivant ce message je me rend compte de ma stupidité...
Vu que j'utilise le routage, les headers sont sans doute déjà lancés et du coup toute ma partie header n'est pas prise en compte.


Edit: Au final, je vais passer sous un nom de domaine différent, sans routage. Je passe donc le sujet en résolu ! Merci !
Koudja 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 13h11.


 
 
 
 
Partenaires

Hébergement Web