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));
        }