public override void Process() { byte[] uploadFileBytes = null; string uploadFileName = null; decimal fileSize = 0; if (UploadConfig.Base64) { uploadFileName = UploadConfig.Base64Filename; uploadFileBytes = Convert.FromBase64String(Request[UploadConfig.UploadFieldName]); } else { var file = Request.Files[UploadConfig.UploadFieldName]; uploadFileName = file.FileName; if (!CheckFileType(uploadFileName)) { Result.State = UploadState.TypeNotAllow; WriteResult(); return; } if (!CheckFileSize(file.ContentLength)) { Result.State = UploadState.SizeLimitExceed; WriteResult(); return; } fileSize = Math.Round((decimal)file.ContentLength / 1024, 3); uploadFileBytes = new byte[file.ContentLength]; try { file.InputStream.Read(uploadFileBytes, 0, file.ContentLength); } catch (Exception) { Result.State = UploadState.NetworkError; WriteResult(); } } Result.OriginFileName = uploadFileName; //var savePath = PathFormatter.Format(uploadFileName, UploadConfig.PathFormat); // var localPath = Server.MapPath(savePath); string ext = uploadFileName.Split('.')[uploadFileName.Split('.').Length - 1];//文件扩展名 // string localPath = BLL.SystemManage.FileUploadHelper.GetUploadDirectory((Common.Enum.enumBusinessFlag)this.UploadConfig.BusinessFlag) + "\\" + uploadFileName + ""; var newFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "." + ext; //string localPath = BLL.SystemManage.FileUploadHelper.GetUploadDirectory((Common.Enum.enumBusinessFlag)this.UploadConfig.BusinessFlag) + "\\" + newFileName + ""; string returnPath = ""; string localPath = HC.Core.Common.FileUpload.imgUpload.GetUploadDirectory(this.UploadConfig.Action, out returnPath) + "\\" + newFileName + ""; //保存的文件名 try { if (!Directory.Exists(Path.GetDirectoryName(localPath))) { Directory.CreateDirectory(Path.GetDirectoryName(localPath)); } File.WriteAllBytes(localPath, uploadFileBytes); //Result.Url = BLL.SystemManage.FileUploadHelper.GetAccessPath((Common.Enum.enumBusinessFlag)this.UploadConfig.BusinessFlag)+uploadFileName + ""; //Result.Url = BLL.SystemManage.FileUploadHelper.GetAccessPath((Common.Enum.enumBusinessFlag)this.UploadConfig.BusinessFlag) + newFileName + ""; Result.Url = returnPath + "/" + newFileName; #region 文件表记录已上传的文件信息 //BLL.SystemManage.RelationFile rfBLL = new BLL.SystemManage.RelationFile(); //Model.SystemManage.RelationFile relationFile = new Model.SystemManage.RelationFile(); //relationFile.FileID = Guid.NewGuid(); //relationFile.FileName = uploadFileName; //relationFile.FilePath = Result.Url; //relationFile.FileType = ext; //relationFile.FileSize = fileSize; //relationFile.BusinessFlag =this.UploadConfig.BusinessFlag; //relationFile.BusinessID =this.UploadConfig.BusinessID; //relationFile.ParentId = Guid.Empty; ////relationFile.UploadUser= //if (this.UploadConfig.Action == "uploadimage") //{ // relationFile.FileFlag = "Imgs"; //} //else if (this.UploadConfig.Action == "uploadscrawl") //{ // relationFile.FileFlag = (short)enumFileFlag.EditorGraffiti; //} //else if (this.UploadConfig.Action == "uploadvideo") //{ // relationFile.FileFlag = "video"; //} //else if (this.UploadConfig.Action == "uploadfile") //{ // relationFile.FileFlag = (short)enumFileFlag.EditorFile; //} //else //{ // relationFile.FileFlag = (short)enumFileFlag.Doc; //} //relationFile.ThumbnailSize =string.Empty; //rfBLL.Save(relationFile); ////如果是编辑器图片,且业务模块是CmsContent //if (relationFile.FileFlag == (short)enumFileFlag.EditorPicture && relationFile.BusinessFlag == (short)enumBusinessFlag.CMSContent) //{ // 生成缩略图 // 1读取缩略图设置 // Model.SystemManage.Search.BusinessThumbnail btModel = new Model.SystemManage.Search.BusinessThumbnail(); // btModel.BusinessFlag = this.UploadConfig.BTBusinessFlag; // btModel.BusinessID = this.UploadConfig.BTBusinessID; // Common.Paging pageObject = new Common.Paging("ThumbnailSize ASC", Common.Enum.ListGridType.DataGrid) { PageIndex = 1, PageSize = Common.ConfigHelper.NoPageingSize }; // DataTable btTable = new BLL.SystemManage.BusinessThumbnail().SearchPageData(btModel, pageObject); // BLL.SystemManage.Thumbnail thumbnailBLL = new Thumbnail(); // foreach (DataRow dr in btTable.Rows) // { // string reFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff"); // 生成缩略图 // string tblocalPath = BLL.SystemManage.FileUploadHelper.GetUploadDirectory((Common.Enum.enumBusinessFlag)this.UploadConfig.BusinessFlag) + "\\" + reFileName + "." + ext + ""; // int width = Common.Utility.ToInt(dr["Width"].ToString(), 100); // int height = Common.Utility.ToInt(dr["Height"].ToString(), 100); // short model = Common.Utility.ToShort(dr["Mode"].ToString(), 1); // string thumbnailSize = dr["ThumbnailSize"].ToString(); // Common.ImageTools.MakeThumbnail(localPath, tblocalPath, width, height, (Common.Enum.enumThumbnailMode)model); // 记录缩略图信息 // Model.SystemManage.RelationFile tbRelationFile = new Model.SystemManage.RelationFile(); // tbRelationFile.FileID = Guid.NewGuid(); // tbRelationFile.BusinessFlag = relationFile.BusinessFlag; // tbRelationFile.BusinessID = relationFile.BusinessID; // tbRelationFile.FileName = relationFile.FileName + "缩略图(" + thumbnailSize + ")"; // tbRelationFile.FileType = relationFile.FileType; // System.IO.FileInfo file = new FileInfo(tblocalPath);//获取缩略图的大小 // relationFile.FileSize = Math.Round((decimal)file.Length / 1024, 3);// // tbRelationFile.FilePath = BLL.SystemManage.FileUploadHelper.GetAccessPath((Common.Enum.enumBusinessFlag)this.UploadConfig.BusinessFlag) + "/" + reFileName + "." + ext + ""; // tbRelationFile.BusinessGuid = relationFile.BusinessGuid; // tbRelationFile.ParentId = relationFile.FileID; // tbRelationFile.FileFlag = (short)enumFileFlag.Thumbnail; // tbRelationFile.ThumbnailSize = dr["ThumbnailSize"].ToString(); // rfBLL.Save(tbRelationFile); // } // IList<Model.SystemManage.Thumbnail> tbList=DAL.DataTableHelper.ConvertTo<Model.SystemManage.Thumbnail>(btTable); // foreach (Model.SystemManage.Thumbnail tb in tbList) // { // //string reFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff"); // ////生成缩略图 // //string tblocalPath=BLL.SystemManage.FileUploadHelper.GetAccessPath((Common.Enum.enumBusinessFlag)this.UploadConfig.BusinessFlag) + "\\" + reFileName + "." + ext + ""; // //Common.ImageTools.MakeThumbnail(localPath, tblocalPath, tb.Width, tb.Height, (Common.Enum.enumThumbnailMode)tb.Mode); // ////记录缩略图信息 // //Model.SystemManage.RelationFile tbRelationFile = new Model.SystemManage.RelationFile(); // //tbRelationFile.FileID = Guid.NewGuid(); // //tbRelationFile.BusinessFlag = relationFile.BusinessFlag; // //tbRelationFile.BusinessID = relationFile.BusinessID; // //tbRelationFile.FileName = relationFile.FileName + "缩略图(" + tb.ThumbnailSize + ")"; // //tbRelationFile.FileType = relationFile.FileType; // //System.IO.FileInfo file = new FileInfo(tblocalPath);//获取缩略图的大小 // //relationFile.FileSize =Math.Round((decimal)file.Length/1024,3);// // //tbRelationFile.FilePath = BLL.SystemManage.FileUploadHelper.GetAccessPath((Common.Enum.enumBusinessFlag)this.UploadConfig.BusinessFlag) + "/" + reFileName + "." + ext + ""; // //tbRelationFile.BusinessGuid = relationFile.BusinessGuid; // //tbRelationFile.ParentId = relationFile.FileID; // //tbRelationFile.FileFlag = (short)enumFileFlag.Thumbnail; // //tbRelationFile.ThumbnailSize = tb.ThumbnailSize; // //rfBLL.Save(tbRelationFile); // } //} var fileRecorderService = EngineContext.Current.Resolve <IFileRecordService>(); var entity = new HC.Data.Models.FileRecord(); entity.CreateTime = DateTime.Now; entity.FileName = uploadFileName; entity.FileType = this.UploadConfig.Action == "uploadimage" ? 1 : 2; entity.ID = Guid.NewGuid(); entity.Path = Result.Url; fileRecorderService.AddRecord(entity); #endregion Result.State = UploadState.Success; } catch (Exception e) { Result.State = UploadState.FileAccessError; Result.ErrorMessage = e.Message; } finally { WriteResult(); } WriteResult(); }
public void AddRecord(HC.Data.Models.FileRecord entity) { this._FileRecordRepository.Insert(entity); }