2010-10-13 162 views
1

你好,我正在構建一個網站,我可以上傳我自己的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

回答

1

您需要設置正確的標題爲您的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

1

強制下載的最簡單方法是將文件的Content-Type標頭設置爲application/octet-stream。儘管如此,您仍需要在服務器端完成此操作。與PHP或類似的。

0

幾個指針。

  • 可以完成文件上傳,例如,使用PHP。請參閱PHP手冊中的handling file uploads,但需要注意:如果要正確執行此操作,您需要進行大量的學習。

  • 要在瀏覽器中播放MP3文件,最好的選擇是基於Flash/JS的可調整風格的播放器ike jPlayer

  • 要使MP3文件可下載,請構建一個服務器端腳本,以發送@Piskvor和@Jan建議的正確標題。

1

我認爲更好的方法,而不是必須爲下載代碼PHP將如下所示。

假設你的主機使用的是Apache,在你的音樂目錄下創建一個.htaccess文件,其內容如下:

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

這實現了同樣的事情,但PHP將適用於所有MP3文件。