Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/03/2011, 11h11   #1
Membre régulier
 
Inscription : octobre 2006
Messages : 442
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 442
Points : 85
Points : 85
Par défaut forcer téléchargement mp3

Bonjour ,
j'ai un petit problème pour forcer le téléchargement d'un fichier mp3 en effet ce code fonctionne normalement en local mais quand je le mets sur le serveur il m'affiche des symboles illisibles ; quelqu'un peut m'aider
merci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php $nom=@$_REQUEST['fichier'] ; 
 if (file_exists($nom)) {
    print "Le fichier $nom existe";
	header('Content-Type: application/force-download; name="'.$nom.'"');
	header("Content-Transfer-Encoding: audio/mpeg"\n"); // Surtout ne pas enlever le \n 
 
	header('Content-Length: '. filesize($nom));
    header('Content-disposition: attachment; filename='. $nom);
    header('Expires: 0');
	header('Cache-Control: no-cache, must-revalidate');
	header('Pragma: no-cache');
    readfile($nom);
    exit();
} else {
    print "Le fichier $nom n'existe pas";
}
?>
gentelmand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 01h16   #2
Membre du Club
 
Inscription : juin 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 30
Points : 43
Points : 43
salut,

comme tu peut le voir avec la colorisation de la syntaxe tu a un " de trop dans la déclaration du seconde header ça ne doit pas aider à la chose (dont une parse error sur le message d'erreur du else ).

est ce un problème de recopie sur le forum ?
=>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php $nom=@$_REQUEST['fichier'] ; 
 if (file_exists($nom)) {
    print "Le fichier $nom existe";
	header('Content-Type: application/force-download; name="'.$nom.'"');
	header("Content-Transfer-Encoding: audio/mpeg \n"); // Surtout ne pas enlever le \n 
 
	header('Content-Length: '. filesize($nom));
    header('Content-disposition: attachment; filename='. $nom);
    header('Expires: 0');
	header('Cache-Control: no-cache, must-revalidate');
	header('Pragma: no-cache');
    readfile($nom);
    exit();
} else {
    print "Le fichier $nom n'existe pas";
}
?>
de plus l'utilisation de l'opérateur @ est, a mon avis, à prescrire et vérifier correctement si 'fichier' est présent en get ou post serait une meilleur idée.
Pour cela voir empty et / ou isset.

@+
moogli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h44.


 
 
 
 
Partenaires

Hébergement Web