如何实现Content-Disposition:附件?

时间:2012-01-16 05:00:48

标签: php html content-disposition

我试图通过左键单击下载而不是右键单击并保存为我的网站上的mp3,所以为了做到这一点,我必须设置Content-Disposition:attachment。这是我的第一个网站,所以我是如何实际做到这一点的新手,但我是否在我的html标记中这样做,或者我是否以某种方式设置了我的托管网站?

以下是我的标记的示例。

<div class="download">
<a href="MP3/Morgan Page, Sultan & Ned Shepard, and BT feat. Angela McCluskey.mp3" 
<img src="img/dlicon.png"/></a>
</div>

3 个答案:

答案 0 :(得分:22)

MP3列表示例:

<a href="download.php?file=testing.mp3">Download MP3</a>
<a href="download.php?file=testing2.mp3">Download MP3</a>

download.php:

<?php

$file = $_GET['file'];  

header('Content-type: audio/mpeg');

header('Content-Disposition: attachment; filename="'.$file.'"');

?>

答案 1 :(得分:3)

正如其他人所说的那样,你不会在HTML中这样做,而动态解决方案(例如,使用PHP)是过度的。

在您的情况下,我将在Web服务器配置中配置Content-Disposition标头。对于Apache,您可以设置标题based on location,或者使用与某些文件名匹配的.htaccess文件。

答案 2 :(得分:1)

在PHP中也有一个特殊功能:

bool http_send_content_disposition ( string $filename [, bool $inline = false ] )

请参阅 PHP手册http://de2.php.net/manual/en/function.http-send-content-disposition.php