Forcer le téléchargement...

Répondre
Also know as
le 04/12/2006 à 09:01
Also know as
Bonjour,

J'ai suivi la règle pour télécharger un fichier en forcant le téléchargement ET par MySQL pour ne pas savoir l'adresse exacte.

<?php
$base = mysql_connect ('xxxxxx', 'xxxxx', 'xxxxx');
mysql_select_db ('xxxxxxx', $base) ;

// Préparation de la requête SQL sélectionnant le lien du fichier sélectionné
$sql = 'SELECT lien FROM download WHERE id="'.$id.'"';

// Execution de la requête
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

// recuperation du lien
$data = mysql_fetch_array($req);
$fichier = $data['lien'];

// fermeture de la connexion à la base de données
mysql_free_result ($req);
mysql_close ();

// on teste si le fichier est sur le serveur
if (file_exists($fichier))
{
header("Content-disposition: attachment; filename=".$fichier);
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($fichier));
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
readfile($fichier);
}
echo $sql;
echo "<br>";
echo $fichier;
?>


Les lignes de fin sont pour faire mes tests.
Et grace à ces lignes je sais que tout est bien envoyé/reçus.

Mais malheureusement le téléchargement en commence pas.
SI j'enlève le if (file_exists($fichier)) alors il me lance le téléchargement, l'adresse est invisible, MAIS le nom de fichier est tout simplement l'adresse de là ou il va le télécharger.
Par contre si je fais clic droit enregistrer sous là c'est bon plus de problème...

Quelqu'un aurait une idée de mon problème ou alors existe t-il un moyen pour renommer le nom du fichier ?

J'utilise MySQL 5.0.

@+
moogli
le 04/12/2006 à 14:29
moogli
salut,

header("Content-disposition: attachment; filename=".$fichier); <= a priori t'a le nom complet la répertoire compris ?

ajoute un else au if afin de savoir si la condition est toujours évalué comme tu le souhaite !

l'affichage à la fin devrait s'ajouter à la fin du fichier et non s'afficher sur le navigateur !

@+

@+
Il en faut peu pour être heureux !!!!!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours