2010-07-22 16 views
2

Lorsque vous tentez d'afficher une URL * .wav sur notre serveur Web, les données ne sont pas transférées correctement.* Les fichiers .wav ne fonctionnent pas correctement dans php

Nous utilisons apache2 avec php5.10. Parmi les règles de réécriture apache est:

RewriteRule ^(.+)\.(wav)$ /wav.php?wav=$1.$2 [L,NC] 

Et le code correspondant de wav.php est:

<?php 
$image = getPassed("wav"); 
header('Content-Type: audio/wav'); 
set_include_path("/"); 
readfile($image, true); 
exit; 
?> 

Ceci est censé renvoyer tout fichier .wav sur le serveur lorsque server.company.com/ filepath est accessible via un navigateur Web. Lorsque vous essayez d'écouter un fichier * .wav dans firefox ou chrome dans ubuntu (n'ont pas encore testé d'autres systèmes d'exploitation), les erreurs de plugin: "Emplacement non trouvé." Cependant, un clic droit et en choisissant "Enregistrer le lien sous" permet à l'utilisateur de télécharger le fichier .wav.

Des pensées?

Edit:

getPassed est une fonction pour renvoyer les variables de $ _GET ou _POST

+0

Il vous permet de télécharger un fichier _working_ WAV ou juste un fichier qui a l'extension .wav? – zneak

+0

Un fichier wav de travail – Manbeardo

Répondre

1

$ Je pense que vous avez besoin d'un couple plus-têtes pour cette fonctionnalité au travail, pas à 100% sûr parce que je n'ai jamais essayé de diffuser un fichier.

header('Content-Type: audio/wav'); 
header("Content-Transfer-Encoding: binary"); 
header("Content-Length: " . filesize($image) ."; "); 
header('filename="'.$image . '"; ');

Il vaut la peine de l'essayer avec les deux. Vous pouvez également essayer un type de contenu de Content-Type: application/octet-stream;, vous pouvez également essayer de "découper" le fichier en utilisant readfile_chunked() (une fonction fournie par l'utilisateur sur php.net) et voir si cela peut aussi aider.

Espérons que ça aide.