Connexion ftp et téléchargement via header

Eléphant du PHP | 111 Messages

02 juin 2013, 20:00

Salut à tous,
je viens vous voir car ça fais 4 heures que je m'arrache les cheveux avec mon bout de code :evil: .
En faite fait une connexion ftp pour dl un fichier mais le problème c'est que lorsque je lance le téléchargement aucune fenêtre s'ouvre pour me demander de télécharger le fichier.
En faite avec mon code actuelle ça télécharge sans me demander mon avis en plus je ne sais même pas ou :shock: ...

Voila mon code si vous avez une idée à me proposer je suis preneur car la je sèche.
//CHARGEMENT ET D'UN FICHIER
$local_file = "mon_fichier.rar"; 
$server_file = "dossier/dl/mon_fichier.rar";
$res = ftp_size($conn_id, $server_file);
 // try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)){
    header('Content-Description: File Transfer');
    header('Content-Length: '. $res);
    header('Content-Type: file/binary');
    header('Content-Disposition: attachment; filename="'.$server_file.'"');
    header('Content-Transfer-Encoding: binary');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    readfile($server_file); // send the file
    exit();  // make sure no extraneous characters get appended
}
//FERMETURE DE LA CONNEXION

Merci à vous.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 juin 2013, 23:15

salut,

sur ton site le fichier se trouve dans $local_file. Vue la valeur c'est donc dans le même répertoire que le script php.

ensuite tu essai d'envoyer au navigateur le fichier distant
$server_file
au client, alors que c'est le fichier local qu'il faut envoyer ;)

=> remplace $server_file par $local_file (dans la partie envoie de fichier).

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 111 Messages

03 juin 2013, 09:05

En faite mon FTP est sur un serveur dédié et mon site sur un autre serveur.

Mammouth du PHP | 619 Messages

03 juin 2013, 09:51

Bonjour,

si tu as un dedie le plus simple serai de créer un sous domaine qui pointe vers ton serveur de download non ?

Eléphant du PHP | 111 Messages

03 juin 2013, 12:33

Actuellement je fais des téléchargement par FTP anonymes mais maintenant je recherche une solution pour gèrer deux types de comptes. Les comptes standard dl en anonymes et les VIP avec un compte sans restrictions.
Avec mon bout de code ça me permet de me connecter au FTP avec le compte VIP.