2011-10-05 43 views
5

我目前正在使用一個網站,用戶可以從(主要是.mp3)下載二進制媒體文件。我們需要一種「下載」按鈕來將文件保存到用戶在瀏覽器的偏好設置中指定的位置,並且需要以某種方式顯示進度條。如何使用HTML從服務器訪問和下載文件5

目前,我擔心的是找到一種方法來實現這個使用HTML5,並以這樣的方式做到這一點,在未來的版本中,我們稍後將能夠訪問該流,以便一旦我們得到這個基本的下載部分編碼,我們可以以某種方式實現未來的進度條。

我知道HTML5有一個File API,但目前很少有瀏覽器允許它的實現,我們需要這個工作在IE 7+和經常使用的Chrome和Firefox版本上。

感謝您的幫助!

+2

大多數瀏覽器都已經實現了文件下載瓦特/進度條:從我的博客,其中有問題的下載按鈕,基本上是一個「另存爲」按鈕實例。我很困惑*「將文件保存到用戶在瀏覽器的首選項中指定的位置」* - 如果您希望用戶能夠下載文件,只需提供一個鏈接即可。 –

+0

好的,但他們希望「下載」按鈕旁邊的進度欄與瀏覽器的進度欄分開。那有意義嗎? – trevorhinesley

+0

沒有。下載按鈕旁邊的進度條應該跟蹤進度?文件下載? –

回答

3

HTML5支持download屬性:http://webreflection.blogspot.com/2011/08/html5-how-to-create-downloads-on-fly.html

實施例:

<a href="http://.../bad-romance.mp3" download="Bad Romance.mp3">Save "Bad Romance" to your computer</a> 

單擊此將允許瀏覽器來處理下載(而不是使用打開該文件的任何應用程序與MIME類型相關聯) ,包括一個進度條。

注意:你真的要小心,不要偏離正常的用戶期望,試圖創建自己的實現。這與強制鏈接在新選項卡中打開同義詞 - 如果用戶期待一種行爲而接收另一種行爲,則可能會使用戶感到困惑。在你的情況下,試着具體解釋這將是一個「下載」鏈接,而不是「播放」鏈接。上面的例子是這樣做的,但是「下載」圖標也可以。

0

如果你想下載鏈接按鈕,而不是,你可以放置<input>元素的<a>內:

<a href="example.mp3" download="EnterSongNameHere.mp3"> 
    <input type="button" value="<!-- enter song name here -->" /> 
</a> 

而且你還可以使用DOM來動態改變元素的href

<a id="downloadThisPage" download="OpenMe.html> 
    <input type="button" value="See for yourself" /> 
</a> 
<script type="text/javascript"> 
    document.getElementById("downloadThisPage").href = window.location.toString(); 
</script> 

希望這有助於...

相關問題