Sortie mp3 avec php
Je travaille sur mon projet d'école et je suis en train de sortie d'un fichier mp3 à l'aide de PHP mais apparemment c'est juste sorties d'un fichier corrompu et je n'ai aucune idée pourquoi. J'ai parcouru le net pour trouver une solution, mais non.
<?php
$filename = 'audio/1/1.mp3';
if(file_exists($filename)) {
header('Content-Type: audio/mpeg');
header('Content-Disposition: filename="test.mp3"');
header('Content-length: '.filesize($filename));
header('Cache-Control: no-cache');
header("Content-Transfer-Encoding: chunked");
readfile($filename);
} else {
header("HTTP/1.0 404 Not Found");
}
?>
Quelqu'un peut-il m'expliquer cela? Ce serait vraiment génial!
Avez-vous regardé le fichier téléchargé dans un éditeur de texte, ou de le lancer à travers un diff binaire du programme, pour voir comment c'est différent de l'original de la copie côté serveur? Il n'y a évidemment rien de mal avec votre code.
avez-vous vérifié pour voir si il n'y a aucun espace avant la première des balises php?
avez-vous vérifié pour voir si il n'y a aucun espace avant la première des balises php?
OriginalL'auteur Tim S. | 2011-03-11
Vous devez vous connecter pour publier un commentaire.
C'est ce qu'il vous manque dans votre en-tête() (vous n'aviez pas de "inline").
Content-Transfer-Encoding doit être "binaire", pas "chunked".
Edit:
utiliser "inline" si vous souhaitez qu'il s'affiche dans le navigateur (si les capacités existent) ou "attachment" si vous voulez forcer le téléchargement.
Comme vous pouvez le voir, j'ai fait de fournir une explication pour les deux options 😉
N'a pas fonctionné. J'ai essayé de télécharger le fichier et le lire avec winamp qui, en gros, me montre un fichier corrompu comme il y a des jonques manquant
Êtes-vous sûr que le fichier que vous êtes readfile()-ing n'est pas corrompu?
Ouais c'est pas corrompu. Pourrait-il y avoir quelque chose de mal dans la configuration du serveur? En fin de compte, c'est de retourner un assez gros fichier
OriginalL'auteur Furicane
pouvez-vous essayer de remplacer
ligne avec
j'avais édité. Avez-vous essayé ?
N'a pas fonctionné. J'ai essayé de télécharger le fichier et le lire avec winamp qui, en gros, me montre un fichier corrompu comme il y a des jonques manquant
OriginalL'auteur osm
Et bien la réponse était et ce n'était pas mon script. Avant toute balise HTML je charge tout le contenu, si des en-têtes personnalisés sont définis je n'afficher que le contenu (extrait de modèles)
Pour les modèles je utiliser ob_get_contents(), donc dans le modèle actuel et je l'echo/de données d'impression. Pour une raison quelconque ob_get_contents() n'est pas extraire correctement donc c'est là que ça s'est mal passé.
Maintenant, je définir mes en-têtes d'un tableau et le chemin d'accès du contenu d'une autre variable et l'appeler.
Longue histoire courte:
ob_get_contents() n'est pas obtenir le contenu binaire.
Merci les gars, certainement va vous donner de coup de pouce pour la efford et plutôt utile d'informations!
OriginalL'auteur Tim S.