HTTP响应中的.MP3下载

时间:2010-06-09 18:21:23

标签: c# asp.net http mp3

我对我正在寻找的东西有一个疑问,......太久了!我们构建了一个应用程序,管理员可以将歌曲上传到数据库中。然后用户可以购买歌曲并单独下载。问题是,当用户使用下面的代码下载MP3歌曲时,它在Firefox和Chrome中运行良好,但在IE8中运行效果不佳仅仅是因为WMP试图打开歌曲并且它没有得到它而不是“另存为”对话框?任何关于HOW的问题我都可以强迫“另存为”diaglog吗?请注意,我在服务器上没有MP3 physicaly它在数据库中。所以我不能直接链接到歌曲......

这是我的代码:

            // Remove "specials chars"
            foreach (char aChar in @"/\:*?""<>| ") {
                if (aChar == ' ') {
                    songNameAndExt = songNameAndExt.Replace(' ', '_');
                } else {
                    songNameAndExt = songNameAndExt.Replace(aChar.ToString(), string.Empty);
                }
            }
            Response.Clear();
            Response.ClearHeaders();
            Response.ClearContent();
            HttpContext.Current.Response.ContentType = "application/octet-stream";
            HttpContext.Current.Response.Headers.Add("Content-Disposition", string.Format("filename={0}", songNameAndExt));
            HttpContext.Current.Response.OutputStream.Write(songData, 0, songLength);

1 个答案:

答案 0 :(得分:5)

将其更改为

HttpContext.Current.Response.Headers.Add("Content-Disposition", string.Format("attachment; filename={0}.mp3", songNameAndExt))