Nom fichier téléchargement forcé

Signaler
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009
-
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009
-
Salut tout le monde,
j'ai le code suivant qui me permet de lancer le téléchargement d'un fichier, par contre, il prend pour nom le nom de la page contenant le script....
Comment faire en sorte que le nom soit bien celui du fichier téléchargé....?
header("Content-disposition: attachment; filename=$file");
header("Content-Type: application/force-download");
readfile("..\Annu\Annuaire.xls");

4 réponses

Messages postés
15151
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
14 octobre 2021
99
T'as quoi dans $file? Il ne faut pas mettre ton "Annuaire.xls" par exemple?

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Je déclare ma variable un peu plus haut dans le script (je lance cette page php à partir d'un lien placé dans une page html; voici le lien :[Convertisseur.php Téléchargez la version imprimable] :

<?php


$base="D:\\Qualite\Annuaire\Annuaire.mdb";
$Annuaire="Annuaire";


//connection au serveur:
$cnx = odbc_connect( "DSN_Annuaire","" ,"") or die ("Impossible de se connecter à la base de donnée") ;


$requete = "SELECT * FROM $Annuaire ORDER BY Nom" ; // on sélectionne les enregistrements
$req = odbc_do($cnx, $requete);
$res = odbc_num_rows($req); // on compte le nombre de résultats

$file = ("..\Annu\Annuaire.xls"); // le fichier doit déjà exister
if(!$file = fopen($file, "w")) //on ouvre le fichier
{
print("'$file' n'existe pas!\n");
exit;
}

while ( odbc_fetch_row($req) ) { // chaque fois que "$req" est dif. de "$i", donc qu'il y a un enreg.

//on récupère les champs
$Nom = odbc_result($req,"Nom");
$Societe = odbc_result($req,"Societe");
$Service = odbc_result($req,"Service");
$Fixe = odbc_result($req,"Fixe");
$Fixe_abrege = odbc_result($req,"Fixe_abrege");
$Fax = odbc_result($req,"Fax");
$Portable = odbc_result($req,"Portable");
$Abrege_fp = odbc_result($req,"Abrege_fp");
$Mail = odbc_result($req,"Mail");


//ecriture
fputs($file,"$Nom\t $Societe\t $Service\t $Fixe\t $Fixe_abrege\t $Fax\t $Portable\t $Abrege_fp\t $Mail\t \n"); //une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne


}


header("Content-disposition: attachment; filename=$file");
header("Content-Type: application/force-download");
readfile("..\Annu\Annuaire.xls");



?>
Messages postés
947
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
5 avril 2008
3
Bonjour,

1/ Inverse les deux headers:

header("Content-Type: application/force-download");
header("Content-disposition: attachment; filename=$file");

2 / Ensuite:

Il est plus prefereable d'utiliser un handle pour les flux (tout comme en C):

$fichiernom = '..\Annu\Annuaire.xls';
$file = fopen($fichiernom, 'w'); // mode write sans possibilité de creation?
if (!$file) { // erreur }
{
//...
// fputs...
fclose($file);
}
header('Content-Type: application/force-download');
header('Content-disposition: attachment; filename=Annuaire.xls');
readfile($fichiernom);


http://www.nexen.net/docs/php/annotee/function.fopen.php
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Je ne comprends pas, j'ai le code suivant et ca me donne l'erreur "Parse error : syntax error, unexpected $end....on line 45...:

<?php


$base="D:\\Qualite\Annuaire\Annuaire.mdb";
$Annuaire="Annuaire";


//connection au serveur:
$cnx = odbc_connect( "DSN_Annuaire","" ,"") or die ("Impossible de se connecter à la base de donnée") ;


$requete = "SELECT * FROM $Annuaire ORDER BY Nom" ; // on sélectionne les enregistrements
$req = odbc_do($cnx, $requete);
$res = odbc_num_rows($req); // on compte le nombre de résultats

$fic = ("..\Annu\Annuaire.xls"); // le fichier doit déjà exister
$file = fopen($fic, 'w'); //on ouvre le fichier
if (!$file) { // erreur }
{
print("'$fic' n'existe pas!\n");
exit;
}

while ( odbc_fetch_row($req) ) { // chaque fois que "$req" est dif. de "$i", donc qu'il y a un enreg.

//on récupère les champs
$Nom = odbc_result($req,"Nom");
$Societe = odbc_result($req,"Societe");
$Service = odbc_result($req,"Service");
$Fixe = odbc_result($req,"Fixe");
$Fixe_abrege = odbc_result($req,"Fixe_abrege");
$Fax = odbc_result($req,"Fax");
$Portable = odbc_result($req,"Portable");
$Abrege_fp = odbc_result($req,"Abrege_fp");
$Mail = odbc_result($req,"Mail");


//ecriture
fputs($file,"$Nom\t $Societe\t $Service\t $Fixe\t $Fixe_abrege\t $Fax\t $Portable\t $Abrege_fp\t $Mail\t \n"); //une tabulation \t pour changer de colonne et un retour chariot \n pour changer de ligne


fclose($file);
}


header("Content-Type: application/force-download");
header("Content-disposition: attachment; filename=Annuaire.xls");
readfile("$fic");
?>