0
我試圖將MP3文件下載到位於服務器上名爲「歌曲」目錄中的用戶計算機上。我已經能夠運行一個腳本,通過瀏覽器下載這些文件。但是,這些文件嚴格按照帶.mp3擴展名的文本進行下載。我希望這些文件是從服務器下載的可播放mp3文件。PHP從服務器上的目錄下載MP3文件
這是我的PHP腳本。
<?php
$link = mysqli_connect("...","...","....","...") or die("Error ".mysqli_error($link));
if(mysqli_connect_errno())
{echo nl2br("Failed to connect to MySQL:". mysqli_connect_error() . "\n");}
else
{echo nl2br("Established Database Connection \n");}
//當前的腳本下載所有歌曲列表上的服務器
$target = "songs/";
if ($handle = opendir($target)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo $entry."'>".$entry."</a>\n";
}
}
closedir($handle);
}
$file = basename($_GET['file']);
$file = 'Songs_From_Server'.$file;
if(!$file){ // file does not exist
die('file not found');
} else {
header("Cache-Control: private");
header("Content-type: audio/mpeg3");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=".basename($file));
readfile($file);
}發現
?>
下面是結果我得到的一個例子一個txt文件。
建立的數據庫連接
01在1983年他愛Fly.mp3' > 01。1983年他愛Fly.mp3
什麼是正確的位置MP3文件? 'print $ file;'在調用'readfile($ file);'之前''。它說什麼? – user4035
我已經嘗試在調用readfile之前打印$ file。下載返回相同的結果。看起來很奇怪。 @ user4035 – gsanchez
MP3文件駐留在目標服務器上名爲「songs」的目錄中。 @ user4035 – gsanchez