我有一个链接指向我的网站上的音乐文件,现在文件的名称在上传时被哈希,所以我想使用原来的文件名,我已经存储在我的数据库中,我做了一些研究,发现了'a'标签的这个新的“下载”属性,但只适用于Firefox的更高版本和Chrome,它不适用于ie,也不适用于我使用的下载管理器所以我在网上查了一下,发现了关于我然后实施的标题。现在我将文件名改为好了,但是无论我尝试下载的音乐文件如何,音乐文件都会保存为'.35kb'文件大小。这是我的代码:在PHP中使用头文件重命名下载文件
if (isset($_REQUEST['download']))
{
$download_id = $_REQUEST['download'];
$db = new MysqliDatabase(ConnectionString);
$result = array();
$result = $db->query_one("SELECT TrackID, ma.ArtisteName, FeaturedArtistes,
mc.Category, TrackName
FROM `musictracks` mt
LEFT JOIN `musiccategories` mc
ON mt.CategoryID = mc.CategoryID
LEFT JOIN `musicartistes` ma
ON mt.ArtisteID = ma.ArtisteID
WHERE mt.TrackID = '$download_id';");
$filename = $result->TrackPath;
$outputfilename = $result->ArtisteName . ' ft. ' . $result->FeaturedArtistes . ' - ' . $result->TrackName . '.mp3';
header("Content-Type: audio/mpeg");
header("Content-Disposition: attachment; filename=\"" . basename($outputfilename) . "\";");
header("Content-Transfer-Encoding: binary");
readfile("$filename");
}
这是下载链接:
<a href="<?php echo 'musicdownload.php?download='. $row->TrackID ?>" ><img src="images/download.png" alt="download" title="download" width="14" height="14" /></a>
11.35kb文件包含什么? –
把一些mp3文件放在服务器上,并尝试直接下载 - 也许有服务器的问题。并检查你的'$文件名' - 也许这不是你所期望的。 – furas
它被保存为音乐文件,但当我尝试播放它不起作用。 –