如何使用ASP.NET MVC 5和实体框架下载MP3文件

奥托洛伊

我已经成功完成了上传位-将MP3文件上传到了我的SQL Server,但是在下载文件时需要帮助...。我使用以下代码上传MP3文件

public ActionResult Create([Bind(Include = "ID,Artist,Album")] TrackUpload trackUpload, HttpPostedFileBase upload)
{
    try
    {
        if (ModelState.IsValid)
        {
            if (upload != null && upload.ContentLength > 0)
            {
                var song = new File
                {
                    FileName = System.IO.Path.GetFileName(upload.FileName),
                    FileType = FileType.Songs,
                    ContentType = upload.ContentType
                };
                using (var reader = new System.IO.BinaryReader(upload.InputStream))
                {
                    song.Content = reader.ReadBytes(upload.ContentLength);
                }
                trackUpload.Files = new List<File> { song };
            }
            db.TrackUploads.Add(trackUpload);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
    }

    catch (RetryLimitExceededException /* dex */)
    {

        ModelState.AddModelError("", "Cant save changes.");
    }
    return View(trackUpload);
}

运行正常,这意味着文件存储在数据库中,现在如何使用实体框架从sql db下载MP3文件

山本哲也

要从MVC控制器下载MP3文件,请确保将MIME类型设置FileContentResult有关详细信息audio/mp3请参见http://filext.com/file-extension/MP3)。audio/mpeg3audio/x-mpeg3

这是定义文件下载方案的简单控制器代码:

/*
 *  assume Id becomes file ID key to download
 *  this code provides simple download function by returning FileContentResult with proper MIME type
 */
public FileContentResult DownloadFile(int Id) 
{
    // assume FileContext is your file list DB context with FileName property (file name + extension, e.g. Sample.mp3)
    using (FileContext db = new FileContext())
    {
        var download = db.TrackUploads.Where(x => x.ID == Id).SingleOrDefault();
        if (download != null) 
        {
            // remove this line if you want file download on the same page
            Response.AddHeader("content-disposition", "inline; filename=" + download.FileName);
            return File(download.FileName, "audio/mp3");
        }
        else
        {
            return null;
        }
    }
}

附录

要在下载之前从文件扩展名获取MIME类型,此代码部分可能适用:

if (download != null) 
{
    String mimeType = MimeMapping.GetMimeMapping(download.FileName);
    ...
    // other tasks
    ...
    return File(download.FileName, mimeType);
}

参考:使用Entity FrameWork从sql db查看和下载文件(对MP3扩展进行了调整)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Asp.net MVC 5和Web Essentials 2013编译Twitter Bootstrap 3.0 LESS

来自分类Dev

如何在ASP.NET MVC 5,实体框架6中使用流畅的API映射表?

来自分类Dev

没有模型和实体框架的ASP.NET MVC

来自分类Dev

如何使用ASP.NET MVC 5的UserManager重置密码

来自分类Dev

如何使用JavaScript和ASP.NET MVC更新图像?

来自分类Dev

如何使用Autofac和Asp.Net MVC解决实例

来自分类Dev

如何使用ASP.Net MVC5和OWIN返回StatusCode 401

来自分类Dev

ASP.NET MVC 5实体框架-关系

来自分类Dev

使用asp.net mvc下载文件

来自分类Dev

使用DotNetZip通过ASP.NET MVC下载zip文件

来自分类Dev

ASP.NET vNext MVC和实体框架问题

来自分类Dev

带有实体框架的ASP .NET MVC 5中的并发

来自分类Dev

免费使用ASP .NET MVC 5

来自分类Dev

如何在ASP.NET 5 RC1 MVC中使用IFormFile保存上传的文件

来自分类Dev

如何使用实体框架在ASP.NET MVC中检查删除操作是否成功

来自分类Dev

使用angularjs和ASP.NET MVC

来自分类Dev

使用实体框架ASP.NET MVC登录过程

来自分类Dev

如何在ASP.NET MVC 5,实体框架6中使用流畅的API映射表?

来自分类Dev

实体框架和ASP.NET MVC更复杂的模型

来自分类Dev

使用asp.net mvc下载文件

来自分类Dev

ASP.NET MVC 5实体框架-关系

来自分类Dev

结合使用ASP.NET MVC和实体框架

来自分类Dev

如何在不使用实体框架的情况下使用ASP NET MVC5从SQL Server显示表?

来自分类Dev

C#Asp.NET MVC使用FileStreamResult下载Excel文件

来自分类Dev

如何在 ASP.NET MVC 5 中使用 applozic

来自分类Dev

如何使用实体框架在 ASP.NET MVC 中调用存储过程

来自分类Dev

如何使用 NAudio/SoundTouch 在 ASP.NET MVC 5 中流式传输 MP3?

来自分类Dev

如何使用 ASP.NET MVC 和实体框架在 C# 中创建注销

来自分类Dev

如何使用javascript在mvc项目中播放mp3文件?

Related 相关文章

  1. 1

    如何使用Asp.net MVC 5和Web Essentials 2013编译Twitter Bootstrap 3.0 LESS

  2. 2

    如何在ASP.NET MVC 5,实体框架6中使用流畅的API映射表?

  3. 3

    没有模型和实体框架的ASP.NET MVC

  4. 4

    如何使用ASP.NET MVC 5的UserManager重置密码

  5. 5

    如何使用JavaScript和ASP.NET MVC更新图像?

  6. 6

    如何使用Autofac和Asp.Net MVC解决实例

  7. 7

    如何使用ASP.Net MVC5和OWIN返回StatusCode 401

  8. 8

    ASP.NET MVC 5实体框架-关系

  9. 9

    使用asp.net mvc下载文件

  10. 10

    使用DotNetZip通过ASP.NET MVC下载zip文件

  11. 11

    ASP.NET vNext MVC和实体框架问题

  12. 12

    带有实体框架的ASP .NET MVC 5中的并发

  13. 13

    免费使用ASP .NET MVC 5

  14. 14

    如何在ASP.NET 5 RC1 MVC中使用IFormFile保存上传的文件

  15. 15

    如何使用实体框架在ASP.NET MVC中检查删除操作是否成功

  16. 16

    使用angularjs和ASP.NET MVC

  17. 17

    使用实体框架ASP.NET MVC登录过程

  18. 18

    如何在ASP.NET MVC 5,实体框架6中使用流畅的API映射表?

  19. 19

    实体框架和ASP.NET MVC更复杂的模型

  20. 20

    使用asp.net mvc下载文件

  21. 21

    ASP.NET MVC 5实体框架-关系

  22. 22

    结合使用ASP.NET MVC和实体框架

  23. 23

    如何在不使用实体框架的情况下使用ASP NET MVC5从SQL Server显示表?

  24. 24

    C#Asp.NET MVC使用FileStreamResult下载Excel文件

  25. 25

    如何在 ASP.NET MVC 5 中使用 applozic

  26. 26

    如何使用实体框架在 ASP.NET MVC 中调用存储过程

  27. 27

    如何使用 NAudio/SoundTouch 在 ASP.NET MVC 5 中流式传输 MP3?

  28. 28

    如何使用 ASP.NET MVC 和实体框架在 C# 中创建注销

  29. 29

    如何使用javascript在mvc项目中播放mp3文件?

热门标签

归档