首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用asp.net下载音乐

如何用asp.net下载音乐
EN

Stack Overflow用户
提问于 2016-11-08 06:34:17
回答 1查看 495关注 0票数 0

我有一个asp.net webform应用程序。我想要一个下载音乐的按钮,所以我在代码块下面写:

代码语言:javascript
复制
protected void Button1_Click(object sender, EventArgs e)
{
    string id_new;
    id_new = Session["selectedmusicID"].ToString();
    DataTable dt2 = new DataTable();
    dt2 = blm.selectMusic("sel_music", Convert.ToInt32(id_new));
    string test = dt2.Rows[0][9].ToString();
    Response.ContentType = "application/mp3";
    Response.AddHeader("Content-Disposition", dt2.Rows[0][9].ToString());
    Response.TransmitFile(Server.MapPath( dt2.Rows[0][9].ToString()));
    Response.End();
}

当我运行这段代码并点击按钮时,它会下载music.aspx页面,而不是mp3文件,我不知道我的错误是什么。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-11 14:11:11

我终于解决了我的问题,正如你在下面的代码中所看到的.首先,我在数据库中创建了一个名为MusicByte的列到我的音乐表中。

代码语言:javascript
复制
string id_new;
id_new = Session["selectedmusicID"].ToString();
DataTable dt2 = new DataTable();
dt2 = blm.selectMusic("sel_music", Convert.ToInt32(id_new));
string test = dt2.Rows[0][9].ToString();
string filename = test.Substring(9).Replace(" " , "").Replace(".mp3" , ".MP3");
byte[] buffer = (byte[])(dt2.Rows[0][10]);
Response.ContentType = "audio/mpeg";
Response.AddHeader("Content-Disposition", "Attachment;filename=" + filename);
byte[] datablock = new byte[0x1000];
long filesize;
int bytesread;
long totalsbytesread = 0;
using (Stream st = new MemoryStream(buffer))
        {
            filesize = st.Length;
            while (totalsbytesread < filesize)
            {
                if (Response.IsClientConnected)
                {
                    bytesread = st.Read(datablock, 0, datablock.Length);
                    Response.OutputStream.Write(datablock, 0, bytesread);
                    Response.Flush();
                    totalsbytesread += bytesread;
                }
            }
        }
        Response.End();

删除文件名中的空格并将.mp3复制为.MP3 usefull.Also这段视频帮助我:将文件上载或下载到Server数据库

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40480413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档