public IActionResult DownLoadFile(int id) { Tsdm_uploadfile_Da da = new Tsdm_uploadfile_Da(); Tsdm_uploadfile model = da.Select.Where(s => s.Id == id).First(); string url = _hostingEnvironment.WebRootPath + model.File_Path + model.File_Encode_Name; var stream = System.IO.File.OpenRead(url); var provider = new FileExtensionContentTypeProvider(); var memi = provider.Mappings[model.File_Type]; //增加系统操作日志 var userinfo = (HttpContext.User.Identity as System.Security.Claims.ClaimsIdentity); var userName = userinfo.FindFirst("userName").Value; Tsys_Log_Da logda = new Tsys_Log_Da(); logda.Insert(new Tsys_Log() { Content = $"用户[{userName}],下载文件:【{model.File_Decode_Name}】! 时间:{DateTime.Now}", Createtime = DateTime.Now, Type = (int)SysLogType.操作日志, }); return(File(stream, memi, model.File_Decode_Name)); }
/// <summary> /// 将异常日志写入数据库 /// </summary> /// <param name="message"></param> private void InsertSysLog(string message) { Tsys_Log_Da da = new Tsys_Log_Da(); Tsys_Log model = new Tsys_Log() { Content = message, Createtime = DateTime.Now, Type = (int)SysLogType.系统异常, }; da.Insert(model); }
public IActionResult List(string keyword, DateTime?keystartime, DateTime?keyendTime, int keytype, int pageIndex, int pageSize) { PageModel page = new PageModel(); page.PageIndex = pageIndex; page.PageSize = pageSize; Tsys_Log_Da da = new Tsys_Log_Da(); var list = da.ListByWhere(keyword, (SysLogType)keytype, keystartime, keyendTime, ref page); return(SuccessResultList(list, page)); }
public IActionResult BatchDownload(string ids) { string[] snumber = ids.Split(','); int[] idss = Array.ConvertAll(snumber, int.Parse); if (idss.Length <= 0) { return(FailMessage("请选择您要下载的文件!")); } //获取文件集合 Tsdm_uploadfile_Da da = new Tsdm_uploadfile_Da(); List <Tsdm_uploadfile> files = da.Select.Where(s => idss.Contains(s.Id)).ToList(); //获取系统根目录 var webRootPath = _hostingEnvironment.WebRootPath; //拿到用户id var userinfo = (HttpContext.User.Identity as System.Security.Claims.ClaimsIdentity); int userId = int.Parse(userinfo.FindFirst("userId").Value); string userName = userinfo.FindFirst("userName").Value; //创建并 确定文件===“下载”=====路径 var fileDownLoadPath = "/FileDownload/Project/" + userId + "/"; if (!Directory.Exists(webRootPath + fileDownLoadPath)) { Directory.CreateDirectory(webRootPath + fileDownLoadPath); } string downloadurl = fileDownLoadPath + DateTime.Now.ToString("yyyyMMddhhmmss") + ".zip"; StringBuilder sb = new StringBuilder(); sb.Append($"用户{userName}下载如下文件:"); using (ZipOutputStream zip = new ZipOutputStream(System.IO.File.Create(webRootPath + downloadurl))) { Crc32 crc = new Crc32(); zip.SetLevel(1); //不缺时间就用9,缺时间不缺空间用0. //打包压缩 foreach (var file in files) { sb.Append("{" + file.File_Decode_Name + "},"); string url = _hostingEnvironment.WebRootPath + file.File_Path + file.File_Encode_Name; //拿出当前文件地址 var fs = System.IO.File.OpenRead(url); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); ZipEntry entry = new ZipEntry(Path.GetFileName(file.File_Decode_Name)) { DateTime = file.Create_Time, Size = fs.Length, }; fs.Close(); crc.Reset(); crc.Update(buffer); entry.Crc = crc.Value; zip.PutNextEntry(entry); zip.Write(buffer, 0, buffer.Length); } } //写系统操作日志 Tsys_Log_Da logda = new Tsys_Log_Da(); logda.Insert(new Tsys_Log() { Content = sb.ToString(), Createtime = DateTime.Now, Type = (int)SysLogType.操作日志, }); return(SuccessResult(downloadurl)); }