可下载的MP3文件

问题描述:

你好,我正在构建一个网站,我可以上传我自己的MP3文件。 所以我有文件上传到服务器,当我链接到它的浏览器播放歌曲。 当链接按下下载文件而不是播放时,是否可以这样做?可下载的MP3文件

例如www.example.com/music/song.mp3一旦点击下载而不是播放。

也许这可以在JavaScript中完成?

非常感谢。

+2

这是一个非常广泛的问题。无论如何,它不能使用纯Javascript来完成。您将需要服务器端语言,并在此处指定您可以使用哪一种语言。 – 2010-10-13 10:23:24

+0

如果它是您熟悉的语言,则可以使用JavaScript来完成,使用类似node.js(http:// nodejs .org)在服务器端。 – 2010-10-13 15:27:46

您需要设置正确的标题为您的MP3文件。你可以在你的网络服务器的配置中做到这一点,或者你可以制作一个“下载”脚本来发送正确的头文件和mp3文件的内容。

如果你使用PHP,例如,你可以做一些事情像这样(来自PHP手册):

<?php 
// We'll be outputting a PDF 
header('Content-type: audio/mpeg'); 

// It will be called file.mp3 
header('Content-Disposition: attachment; filename="file.mp3"'); 

// The PDF source is in original.mp3 
readfile('original.mp3'); 
?> 
+0

非常感谢。这工作完美。 – DonJuma 2010-10-13 10:37:04

强制下载的最简单方法是将文件的Content-Type标头设置为application/octet-stream。尽管如此,您仍需要在服务器端完成此操作。与PHP或类似的。

您可以通过发送content-disposition标题来告诉浏览器如何处理文件。这将完成服务器端,无论你提供的MP3文件。

http://www.boutell.com/newfaq/creating/forcedownload.html

几个指针。

  • 可以完成文件上传,例如,使用PHP。请参阅PHP手册中的handling file uploads,但需要注意:如果要正确执行此操作,您需要进行大量的学习。

  • 要在浏览器中播放MP3文件,最好的选择是基于Flash/JS的可调整风格的播放器ike jPlayer

  • 要使MP3文件可下载,请构建一个服务器端脚本,以发送@Piskvor和@Jan建议的正确标题。

我认为更好的方法,而不是必须为下载代码PHP将如下所示。

假设你的主机使用的是Apache,在你的音乐目录下创建一个.htaccess文件,其内容如下:

<Files *.mp3> 
    ForceType application/octet-stream 
    Header set Content-Disposition attachment 
</Files> 

这实现了同样的事情,但PHP将适用于所有MP3文件。