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 12/04/2007, 08h47   #1
Membre chevronné
 
Avatar de shkyo
 
Homme
Administrateur systèmes et réseaux - Développeur VB
Inscription : juin 2003
Messages : 607
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38

Informations professionnelles :
Activité : Administrateur systèmes et réseaux - Développeur VB

Informations forums :
Inscription : juin 2003
Messages : 607
Points : 749
Points : 749
Par défaut Pb de download de fichier texte

Bonjour, je bosse avec windows xp sp2 + wamp 1.6.6 et j'ai un script qui exporte des données sous la forme d'un fichier texte directement dans le répertoire c:\wamp\www

Jusque-là tout fonctionne, par contre je souhaite forcer (pour faire simple) le téléchargement sur le poste de celui qui se connecte, mais au lieu d'avoir un download, cela m'affiche le fichier texte dans la page web !!!

Je vous rassure, ce n'est pas pour injecter du code malicieux , c'est une appli spécifique pour l'intranet de ma boite...

Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$fichier = 'export.txt';
$infos_fichier = array('taille' => '1000000');
 
@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-Transfer-Encoding: none');
@header('Content-Type: application/octetstream; charset=iso-8859-1; name="'.$fichier.'"');
@header('Content-Disposition: attachement; filename="'.$fichier.'"');
@header('Content-Length: '.$infos_fichier['taille']);
readfile($fichier);
Merci d'avance de vos suggestions...
__________________
L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.com/ Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30
shkyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 09h01   #2
Membre actif
 
Avatar de Azazel.fr
 
Inscription : mars 2007
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 170
Points : 177
Points : 177
http://php.developpez.com/faq/?page=..._forcedownload
__________________
http://www.bordeauxstunt.com
Azazel.fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 10h01   #3
Membre chevronné
 
Avatar de shkyo
 
Homme
Administrateur systèmes et réseaux - Développeur VB
Inscription : juin 2003
Messages : 607
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38

Informations professionnelles :
Activité : Administrateur systèmes et réseaux - Développeur VB

Informations forums :
Inscription : juin 2003
Messages : 607
Points : 749
Points : 749
Je suis aller voir ce lien, j'ai donc d'un côté un script "download.php" que voici (oui oui c'est du copier/coller...) :
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
<?php
define('CFG_SYSTEM_FILENAME', 'export.txt');
define('CFG_SEND_FILENAME', CFG_SYSTEM_FILENAME);
 
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');
 
error_reporting(0);
ini_set('zlib.output_compression', 0);
 
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');
 
header('Content-Tranfer-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.'"');
 
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');
?>
et de l'autre j'ai ça :
Code :
echo "<a href=\"download.php\">Download...</a>";
Quand je clique sur le lien, cela ouvre une page vide mais à part ça, il ne se passe rien !!!
Normalement, la boite de dialogue "Enregistrer..." devrait apparaître, mais non, rien du tout, même pas d'erreur...

J'ai oublié quelquechose ou quoi ???
__________________
L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.com/ Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30
shkyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 10h59   #4
Membre chevronné
 
Avatar de shkyo
 
Homme
Administrateur systèmes et réseaux - Développeur VB
Inscription : juin 2003
Messages : 607
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38

Informations professionnelles :
Activité : Administrateur systèmes et réseaux - Développeur VB

Informations forums :
Inscription : juin 2003
Messages : 607
Points : 749
Points : 749
Quelques précisions de plus, je fais mes tests sur un IE7 (j'ai pas le choix, c'est ce qu'il y a sur tous les postes de la boite...), par contre, j'ai un IE6 qui traine encore sur un de mes pc et le même code fait s'ouvrir un bloc-note vide qui a comme nom celui du fichier texte que je veux faire télécharger !!!

C'est louche...
__________________
L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.com/ Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30
shkyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 11h05   #5
Membre chevronné
 
Avatar de shkyo
 
Homme
Administrateur systèmes et réseaux - Développeur VB
Inscription : juin 2003
Messages : 607
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38

Informations professionnelles :
Activité : Administrateur systèmes et réseaux - Développeur VB

Informations forums :
Inscription : juin 2003
Messages : 607
Points : 749
Points : 749
Je viens de tester à l'instant avec un FireFox 2, cela fonctionne parfaitement !!!
ARGH !!!!!

Comment je peux faire pour que cela fonctionne sur IE7 ??
__________________
L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.com/ Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30
shkyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 11h27   #6
Membre chevronné
 
Avatar de shkyo
 
Homme
Administrateur systèmes et réseaux - Développeur VB
Inscription : juin 2003
Messages : 607
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38

Informations professionnelles :
Activité : Administrateur systèmes et réseaux - Développeur VB

Informations forums :
Inscription : juin 2003
Messages : 607
Points : 749
Points : 749
CA MARCHE !!! et sur IE6, IE7 et FireFox2...

Voici la solution qui va bien (merci php.net !) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$mm_type="application/octet-stream";
$fichier = 'export.txt';
 
header("Cache-Control: public, must-revalidate");
header("Pragma: hack");
header("Content-Type: " . $mm_type);
header("Content-Length: " .(string)(filesize($fichier)) );
header('Content-Disposition: attachment; filename="'.basename($fichier).'"');
header("Content-Transfer-Encoding: binary\n");
 
$fp = fopen($fichier, 'rb');
$buffer = fread($fp, filesize($fichier));
fclose ($fp);
 
print $buffer;
Voilu, j'espère que cela aidera d'autre personnes !
__________________
L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.com/ Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30
shkyo 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 13h18.


 
 
 
 
Partenaires

Hébergement Web