PHP en-Tête Content-Disposition: attachment forces .fichier php ou en ligne
Je veux télécharger un seul .fichier mp3 à partir de mon site, mais lors de l'utilisation de ce code, il force un .php dans Firefox et Safari. Mais dans google chrome, envoyer vigueur le fichier en ligne et de jouer sur la page. Comment puis-je obtenir de télécharger un .fichier mp3?
$track = $_SERVER['QUERY_STRING'];
if (file_exists("/home/user/gets/" .$track)) {
header("Content-Type: audio/mpeg");
header('Content-Length: ' . filesize($track));
header('Content-Disposition: attachment; filename="test.mp3"');
$str = "/home/user/gets/".$track;
readfile($str);
exit;
} else {
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
echo "no file";
}
J'ai aussi essayé de télécharger un .zip fichier et changer le Type de Contenu application/ocetet-flux, mais il les forces .php les fichiers sur tous les navigateurs.
//$track = $_SERVER['QUERY_STRING'];
$track = 'testfile.zip';
if (file_exists("/home/user/gets/" .$track)) {
header("Content-Type: application/octet-stream");
header('Content-Length: ' . filesize($track));
header('Content-Disposition: attachment; filename="test.mp3"');
$str = "/home/user/gets/".$track;
readfile($str);
exit;
} else {
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);
echo "no file";
}
Je pense que
filesize($track)
est mauvais, il devrait être le tout le chemin filesize("/home/user/gets/".$track)
OriginalL'auteur rubio | 2012-08-16
Vous devez vous connecter pour publier un commentaire.
Je pense que
filesize($track)
est mauvais, il devrait être le tout le cheminfilesize("/home/user/gets/".$track)
. Ce serait la cause de php à la sortie des messages d'erreur, vous empêchant de réglage de la longueur du contenu et de la disposition de l'en-tête.OriginalL'auteur Musa
Essayez de prendre les citations hors tension le nom de fichier:
Obtenir le nom du script à la place du nom de fichier que vous essayez d'utiliser est généralement un signe que le nom de fichier contient des caractères non valides pour le système de fichiers le navigateur tente de sauver. par exemple,
"
n'est pas autorisée.OriginalL'auteur Marc B