probleme fichier téléchargé avec telechargement forcé de php

probleme fichier téléchargé avec telechargement forcé de php - PHP - Programmation

Marsh Posté le 03-07-2007 à 17:22:29    

Bonjour à tous,
 
Voilà, j'ai utilisé le code suivant pour forcer le téléchargement d'un fichier TXT.
 

Citation :

//
// Constantes de configuration
//
 
define('CFG_SYSTEM_FILENAME', 'import/XIMPORT.TXT'); // Nom du fichier pour le système
define('CFG_SEND_FILENAME', 'XIMPORT.TXT'); // Nom du ficher pour le navigateur
 
//
// Constantes à ne pas modifier
//
define('CFG_FILESIZE', filesize(CFG_SYSTEM_FILENAME));
define('CFG_FILE_MD5', md5_file(CFG_SYSTEM_FILENAME));
define('CFG_DATE_FORMAT', 'D, d M Y H:i:s');
 
//
// Quelques éléments nécessaires
//
error_reporting(0);
ini_set('zlib.output_compression', 0);
 
 
/*
* Les en têtes nécessaires
*/
 
//
// Gestion du cache
//
header('Pragma: public');
header('Last-Modified: '.gmdate(CFG_DATE_FORMAT).' GMT');
header('Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0');
 
//
// Informations sur le contenu à envoyer
//
header("Content-Transfer-Encoding: none" );
header('Content-Length: '.CFG_FILESIZE);
header('Content-MD5: '.base64_encode(CFG_FILE_MD5));
header('Content-Type: application/octetstream; name="'.CFG_SEND_FILENAME.'"');
header('Content-Disposition: attachement; filename="'.CFG_SEND_FILENAME.'"');
 
//
// Informations sur la réponse HTTP elle-même
//
header('Date: '.gmdate(CFG_DATE_FORMAT, time()).' GMT');
header('Expires: '.gmdate(CFG_DATE_FORMAT, time()+1).' GMT');
header('Last-Modified: '.gmdate(CFG_DATE_FORMAT, time()).' GMT');
 
 
/*
* Envoi du fichier
*/
 
readfile(CFG_SYSTEM_FILENAME);


 
 
Lorsqu'il est téléchargé, le fichier n'a plus les retours chariots qu'il a avant le téléchargement.
 
En bref :  
Fichier avant téléchargement : retour chariot dans le contenu du texte
Fichier après téléchargement : plus aucun retour chariot dans le contenu du texte
 
En tout cas, ce problème ce pose lorsque je l'ouvre avec notpad.
Si j'ouvre avec Wordpad, les retour chariot sont présent.
 
Quelqu'un pourrai m'expliquer?


---------------
C'est dans le besoin que l'on reconnait ses amis
Reply

Marsh Posté le 03-07-2007 à 17:22:29   

Reply

Marsh Posté le 04-07-2007 à 10:18:37    

c'est là que ça se passe :
header("Content-Transfer-Encoding: none" );  
header('Content-Length: '.CFG_FILESIZE);  
header('Content-MD5: '.base64_encode(CFG_FILE_MD5));  
header('Content-Type: application/octetstream; name="'.CFG_SEND_FILENAME.'"');  
 
 
si tu es sous windows et serveur sous linux ils ne gerent pas les retours chariot pareil.
 
a quoi te sert cette ligne ? header('Content-MD5: '.base64_encode(CFG_FILE_MD5));  
puisque tu l'envoi en clair ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed