Récuperer un fichier CSV

Eléphant du PHP | 89 Messages

27 juin 2010, 16:23

Bonjour à tous
Je sauvegarde le contenu d'une table MYSQL avec la commande SELECT...INTO OUFILE, cela fonctionne parfaitement et est trés rapide. En revanche, le fichier va se sauvegarder dans le repertoire de mysql. Existe-t-il un moyen pour que le client récupére automatiquement ce fichier crée par l'intermédiaire du navigateur, j'ai essayé cette fonction mais le fichier est toujours enregistré sous le repertoire MYSQL et le fichier proposé au client est vide
Voici le script :
 include ("db.php");
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=' . $_SESSION["id_fich"] .'.csv');
$sExport = @$_GET["export"]; 
if ($sExport == "csv") {
	Exportcsv("csv", $sSql);
	mysql_db_close($conn);
	exit;
                                }
//requête
$conn = mysql_db_connect(HOST, USER, PASS, DB, PORT);
$sSql = "SELECT  * FROM `fichier`  INTO OUTFILE '".$_SESSION[ "id_fic"].".csv' FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"'";


function Exportcsv($sExport, $sSql)
{
$result1 = mysql_query($sSql) or die('Erreur SQL !'.$sSql.'<br />'.mysql_error());
}
Merci pour votre aide

ViPHP
ViPHP | 1136 Messages

27 juin 2010, 17:55

Slt ,

Une fois l'export terminé , il te suffit de lire le fichier , en forçant le téléchargement et non l'affichage .
...
header("Content-Type: application/force-download");
header('Content-Disposition: attachment; filename="export.csv"');
header('Content-Length: '.  filesize('chemin/vers/export.csv'));
readfile('chemin/vers/export.csv');
...

Good luck ,
Ch.

Eléphant du PHP | 89 Messages

28 juin 2010, 19:01

Merchi gars pour ton aide...ça marche !!! :)

ViPHP
ViPHP | 1136 Messages

28 juin 2010, 20:57

Merchi gars pour ton aide...ça marche !!! :)

De rien mec :wink:

Ch.