using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using AirWheel.Cycling.Domain; using AirWheel.Cycling.Common; using AirWheel.Cycling.Service.IService; using AirWheel.Cycling.Common.Enums; using AirWheel.Cycling.WebPage.Controllers; namespace AirWheel.Cycling.WebPage.Areas.ComManage.Controllers { public class DownloadController : BaseController { #region 声明容器 /// /// 下载管理 /// IDownloadManage DownloadManage { get; set; } /// /// 上传的文件记录 /// IUploadManage UploadManage { get; set; } #endregion #region 公共变量 //文件ID string fileid = string.Empty; #endregion #region 基本视图 /// /// 加载首页 /// [UserAuthorizeAttribute(ModuleAlias = "Download", OperaAction = "View")] public ActionResult Index() { ViewBag.Search = base.keywords; return View(BindList()); } /// /// 查询列表方法 /// private PageInfo BindList() { var config = this.DownloadManage.Config; var query = (from r in config.COM_DOWNLOAD join u in config.COM_UPLOAD on r.FK_UPID equals u.ID select new { r.ID, r.DLDATE, r.DLIP, r.DLNUM, r.DLOPERATOR, r.FK_UPID, r.FK_USERID, FILENAME = u.UPOLDNAME, u.UPFILEPATH }); if (!string.IsNullOrEmpty(base.keywords)) { query = query.Where(p => p.DLOPERATOR.Contains(keywords)); } return this.DownloadManage.Query(query, base.page, base.pagesize); } /// /// 加载详情 /// [UserAuthorizeAttribute(ModuleAlias = "Download", OperaAction = "Detail")] public ActionResult Detail(string id) { var entity = this.DownloadManage.Get(p => p.ID == id) ?? new COM_DOWNLOAD(); return View(entity); } #endregion #region 其他调用 /// /// 用户下载功能 /// [UserAuthorizeAttribute(ModuleAlias = "Download", OperaAction = "Download")] public ActionResult DownLoadFile() { fileid = Request.QueryString["file"]; //文件ID if (string.IsNullOrEmpty(fileid)) { Response.Write(""); Response.End(); } //查找文件ID是否存在 var file = this.UploadManage.Get(p => p.ID == fileid); if (file == null) { Response.Write(""); Response.End(); } //根据文件路径判断文件是否存在 if (!System.IO.File.Exists(Server.MapPath(file.UPFILEPATH))) { Response.Write(""); //记录日志,文件缺失 WriteLog(enumOperator.Files, "文件丢失,文件原始名称:" + file.UPOLDNAME + "路径" + file.UPFILEPATH,enumLog4net.ERROR); Response.End(); } //记录下载数据 this.DownloadManage.Save(new COM_DOWNLOAD() { ID = Guid.NewGuid().ToString(), FK_UPID = fileid, FK_USERID = this.CurrentUser.Id, DLDATE = DateTime.Now, DLIP = Utils.GetIP(), DLOPERATOR = this.CurrentUser.Name, DLNUM = 1 }); //跳转文件路径,进行浏览器下载 Response.Redirect(file.UPFILEURL + file.UPFILEPATH, true); return new EmptyResult(); } #endregion } }