一般若只在MP3檔上加個連結﹝link﹞,IE會自動開啟相關的軟體﹝如:Windows Media Player﹞來播放,無法pop-up出另存新檔﹝Save As﹞的對話視窗。
而要開啟另存新檔的對話視窗來下載MP3檔,首先得先建立一個如下的aspx檔﹝在此範例中,命名為ringtone.aspx﹞:
<%@ Page Language="VB" %>
<script runat="server">
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Response.ContentType = "audo/mp3"
Response.AppendHeader("Content-Disposition", "Attachment; FileName=ringtone.mp3")
Response.TransmitFile(Server.MapPath("download/ringtone.mp3"))
Response.End()
End Sub
</script>
建好如上的aspx檔後,只需將下載MP3檔的圖形連結﹝或文字連結﹞指定到該aspx檔即可:
'HTML檔指定如下:
<a href="ringtone.aspx"><img src="ringtone_download.jpg" border="0"></a>
'aspx檔指定如下:
Response.Redirect("ringtone.aspx")
切記,不需再另外使用window.open()的方式來開啟該aspx檔,如此反而會多留下一個空白視窗。
範例說明:
- Response.ContentType - 指定所開啟的檔案類型,常見類型有:
- Response.AppendHeader(HeaderName, HeaderValue) - 指定標頭﹝同META標頭﹞:
- Content-Disposition: attachment - 強制下載檔案,其屬性有:
- HttpResponse.TransmitFile(filename) - 將指定的檔案直接寫入HTTP回應﹝Response﹞輸出資料流,而不在記憶體中緩衝。
- Server.MapPath(path) - 傳回伺服器﹝server﹞上對應至虛擬路徑﹝即path所指定之路徑﹞的實體檔案路徑﹝physical directory﹞。
- Response.End() - 停止伺服器﹝server﹞的處理,並將處理內容傳回給使用者。
- Response.Redirect(url) - 將網頁轉到指定的網址﹝即url所指定之網址﹞。
text/HTML | 開啟HTML檔,此為預設值 |
application/msword | 開啟doc檔 |
application/vnd.ms-excel | 開啟xls檔 |
application/vnd.ms-powerpoint | 開啟ppt檔 |
application/pdf | 開啟pdf檔 |
text/plain | 開啟txt檔 |
HeaderName | 指定要加入輸出資料流的HTTP標頭﹝Header﹞名稱 |
HeaderValue | 指定附加到標頭﹝Header﹞的字串 |
FileName | 檔案名稱 |
CreationDate | 新建日期 |
ModificationDate | 修改日期 |
size | 檔案大小 |
延伸說明:
- 其他Response物件常見的屬性有:
- Response.AddHeader與Response.AppendHeader相同,適用於ASP。
Response.Charset | 指定網頁的編碼方式,如:Response.Charset = "utf-8" |
Response.CodePage | 指定網頁的編碼方式,如:Response.CodePage = 65001 |
Response.Cookies(cookie) | 指定網頁的cookie值,如:Response.Cookies("myCookie") = "chocolate chip" |
沒有留言:
張貼留言