Nom fichier téléchargement forcé

flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009 - 13 janv. 2006 à 15:51
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009 - 16 janv. 2006 à 08:22
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

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
13 janv. 2006 à 15:55
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
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
13 janv. 2006 à 15:57
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");



?>
0
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
14 janv. 2006 à 15:33
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
0
flopad Messages postés 528 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 6 mars 2009
16 janv. 2006 à 08:22
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");
?>
0
Rejoignez-nous