/// <summary> /// 分块上传文件添加 /// </summary> /// <param name="folderId"></param> /// <param name="fileName"></param> /// <param name="file"></param> /// <param name="filesize"></param> /// <param name="enabled"></param> /// <returns></returns> public string UplaodeByBlock(string folderId, string filePath, string fileName, byte[] file, int filesize, bool enabled) { // 检查是否已经存在 //string result = this.GetId(new KeyValuePair<string, object>(BaseFileEntity.FieldFolderId, folderId), new KeyValuePair<string, object>(BaseFileEntity.FieldFileName, fileName)); // 检查是否已经存在,加入删除状态为0的条件 List <KeyValuePair <string, object> > parametersList = new List <KeyValuePair <string, object> >(); parametersList.Add(new KeyValuePair <string, object>(BaseFileEntity.FieldFolderId, folderId)); parametersList.Add(new KeyValuePair <string, object>(BaseFileEntity.FieldFileName, fileName)); parametersList.Add(new KeyValuePair <string, object>(BaseFileEntity.FieldDeletionStateCode, 0)); string result = this.GetId(parametersList); if (!String.IsNullOrEmpty(result)) { // 更新数据 this.UpdateFile(result, fileName, file); //在能够真实模仿C/S中的提示确定信息对话框的B/S版本出来之前,先做如下处理:前面的文件有重复的,打删除标志来处理,因为客户不会闲着没事,老传文件,且服务器都是几百个G的空间 // 删除数据 BaseFileManager manager = new BaseFileManager(); int intReturnValue = manager.SetDeleted(result); // 添加数据 BaseFileEntity entity = new BaseFileEntity(); entity.FolderId = folderId; entity.FilePath = filePath; entity.FileName = fileName; entity.Contents = file; entity.FileSize = filesize; entity.Enabled = enabled ? 1 : 0; result = this.AddObject(entity); } else { // 添加数据 BaseFileEntity entity = new BaseFileEntity(); entity.FolderId = folderId; entity.FilePath = filePath; entity.FileName = fileName; entity.Contents = file; entity.FileSize = filesize; entity.Enabled = enabled ? 1:0; result = this.AddObject(entity); } return(result); }