当前位置:Gxlcms > 数据库问题 > [实战]MVC5+EF6+MySql企业网盘实战(15)——逻辑重构2

[实战]MVC5+EF6+MySql企业网盘实战(15)——逻辑重构2

时间:2021-07-01 10:21:17 帮助过:1人阅读

<summary> /// 文件下载 /// </summary> /// <param name="fileId"></param> public void DownLoadFile(string fileId) { UserInfo userInfo = Session["user"] as UserInfo; if (userInfo == null) { RedirectToAction("Login", "UserInfo"); return; } if (string.IsNullOrEmpty(fileId)) { throw new ArgumentNullException("fileId is errror"); } int id = Convert.ToInt32(fileId); var findFile = _myFileServiceRepository.Find(x => x.Id == id); if (findFile == null) { AlertMsg("文件不存在", ""); return; } string filePath = Path.Combine(Server.MapPath("~/NetDisk/"), findFile.FileMd5 + findFile.FileExt); //以字符流的形式下载文件 FileStream fs = new FileStream(filePath, FileMode.Open); byte[] bytes = new byte[(int)fs.Length]; fs.Read(bytes, 0, bytes.Length); fs.Close(); Response.ContentType = "application/octet-stream"; //通知浏览器下载文件而不是打开 Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(findFile.FileName, System.Text.Encoding.UTF8)); Response.BinaryWrite(bytes); Response.Flush(); Response.End(); }

总结

下载的逻辑也很好修改,只是修改一下文件的路径,在数据库中已经存有md5和文件的扩展名,这时候拼接一个文件的真实路径就可以了。

[实战]MVC5+EF6+MySql企业网盘实战(15)——逻辑重构2

标签:

人气教程排行