当文件在不同的目录中时,在服务器中播放wav文件

时间:2012-11-19 12:15:08

标签: php html webserver

我正在尝试创建一个用户可以收听不同wav文件的网站。 我创建了一个php脚本来获取我想要的所有.wav个文件,并将其路径保留在数组中。

然后我这样做播放音频:

echo "<a href='teste.wav'>Play sample 1 </a>";
echo "<a href='" .$audios[$id][1] ."'>Play sample 2 </a>";
?>
<script src="http://mediaplayer.yahoo.com/js></script>

在第一种情况下,我将音频放在与脚本相同的文件夹上,并且工作正常。在第二种情况下,我将它放在一个完全不同的目录中,它永远不会找到该文件。 我知道示例2将直接在正在执行脚本的当前目录下引用某些内容,但我尝试使$audios[$id][1]http://home/.../file.wav一样仍然无效。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

/home/jorge/VOCE/Recordings/-1458206716/Tiago@Aug_31_2012_Tiago_ID_1204811836_pr‌​ebaseline.wav

不要使用绝对路径。这些是本地文件系统之外的无效。您必须使用相对路径,以便浏览器可以构建指向可访问文件的请求,因此它应该更像是:

VOCE/Recordings/-1458206716/Tiago@Aug_31_2012_Tiago_ID_1204811836_pr‌​ebaseline.wav

(假设您的项目公开可见文件夹是VOCE的父级)

  

但我尝试将$ audios [$ id] [1]设为http://home/.../file.wav   并且仍然无法工作。

如果您的浏览器在运行服务器的同一台机器上运行并且您可以访问文件系统,那么

修改

如何做到这一点 - 一些假设(如果真实系统不同,只需进行调整)您的文件系统结构如下

  document-root/
     scripts/
        test.php
     recordings/
        audio.wav
     index.html

document-root是您的磁盘上的位置,httpd为其提供所有文件。这与它的确无关。如果我http://yourdomain/index.html,那么它将显示index.html的内容。您的脚本位于scripts/文件夹中,您的音频文件位于recordings。然后,从test.phpaudio.wav相对路径../recordings/audio.wav。如果您确实需要使用绝对路径(不推荐),则它应为http://yourdomain/recordings/audio.wav。选择最简单的方法。