public async Task <string> PostUploadFileBk() { try { if (!Request.Content.IsMimeMultipartContent()) { var data1 = new { Status = ResponseStatus.Error, Msg = "请求数据不是multipart/form-data类型", Data = "" }; return(DataConverterHelper.SerializeObject(data1)); } //web api 获取项目根目录下指定的文件下 var root = System.Web.Hosting.HostingEnvironment.MapPath("~/UpLoadFiles/BkPayment/"); string date = DateTime.Now.ToString("yyyy-MM-dd"); string resourcePath = Path.Combine(root, date); if (!Directory.Exists(resourcePath)) { Directory.CreateDirectory(resourcePath); } var multipartMemoryStreamProvider = await Request.Content.ReadAsMultipartAsync(); var contentsList = multipartMemoryStreamProvider.Contents; //获取表单数据 Dictionary <string, string> dic = new Dictionary <string, string>(); //List<FileParameter> paraList = new List<FileParameter>(); List <string> files = new List <string>(); //原始文件名 List <string> oldnames = new List <string>(); List <QtAttachmentModel> list = new List <QtAttachmentModel>(); foreach (var content in contentsList) { //通过判断fileName是否为空,判断是否为文件类型 if (!string.IsNullOrEmpty(content.Headers.ContentDisposition.FileName)) { string fileName = content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty); using (Stream stream = await content.ReadAsStreamAsync()) { //文件如果大于100MB 提示不允许 if (stream.Length > 104857600) { return(DCHelper.ErrorMessage("上传的文件不能大于100MB!")); } byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Seek(0, SeekOrigin.Begin); //获取对应文件后缀名 string extension = Path.GetExtension(fileName); //获取文件名 string b_name = Path.GetFileName(fileName); //修改文件名 string newFileName = Guid.NewGuid().ToString("N") + extension; string uploadPath = Path.Combine(resourcePath, newFileName); //保存文件 MemoryStream ms = new MemoryStream(bytes); FileStream fs = new FileStream(uploadPath, FileMode.Create); ms.WriteTo(fs); ms.Close(); fs.Close(); string b_urlpath = "/UpLoadFiles/BkPayment/" + date + "/" + newFileName; QtAttachmentModel model = new QtAttachmentModel(); model.BName = b_name; model.BType = extension; model.BSize = decimal.Round((decimal)stream.Length / (1024), 2); //保留2位小数 //model.BFilebody = bytes; model.BUrlpath = b_urlpath; model.BTable = "BK3_PAYMENT_XM"; model.BRemark = ""; list.Add(model); //返回文件相对路径 files.Add(b_urlpath); oldnames.Add(b_name); } } else { string val = await content.ReadAsStringAsync(); dic.Add(content.Headers.ContentDisposition.Name.ToString(), val); } } var data = new { Status = ResponseStatus.Success, Msg = "附件上传成功。", Data = list, Attachment = files, Oldnames = oldnames }; return(DataConverterHelper.SerializeObject(data)); } catch (Exception ex) { return(DCHelper.ErrorMessage(ex.Message)); } }
public async Task <string> PostAddfj() { List <QtAttachmentModel> attachmentModels = new List <QtAttachmentModel>(); try { PaymentMstAndXmModel paymentMstAndXm = new PaymentMstAndXmModel(); //判断form表单类型是否正确 if (!Request.Content.IsMimeMultipartContent()) { var data1 = new { Status = ResponseStatus.Error, Msg = "请求数据不是multipart/form-data类型", Data = "" }; return(DataConverterHelper.SerializeObject(data1)); } //I6WebAppInfo i6AppInfo = (I6WebAppInfo)HttpContext.Current.Session["NGWebAppInfo"] ?? null; //获取AppInfo值 头部信息记录 var base64EncodedBytes = Convert.FromBase64String(HttpContext.Current.Request.Headers.GetValues("AppInfo").First()); var jsonText = Encoding.UTF8.GetString(base64EncodedBytes); var AppInfo = JsonConvert.DeserializeObject <AppInfoBase>(jsonText); //如果路径不存在,创建路径 var root = System.Web.Hosting.HostingEnvironment.MapPath("~/UpLoadFiles/BKPayment/"); string date = DateTime.Now.ToString("yyyy-MM-dd"); string filePath = Path.Combine(root, date); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } var multipartMemoryStreamProvider = await Request.Content.ReadAsMultipartAsync(); var contentsList = multipartMemoryStreamProvider.Contents; foreach (var content in contentsList) { //通过判断fileName是否为空,是否为文件 if (!string.IsNullOrEmpty(content.Headers.ContentDisposition.FileName)) { //处理文件名字符串 string fileName = content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty); using (Stream stream = await content.ReadAsStreamAsync()) { //文件如果大于100MB 提示不允许 if (stream.Length > 104857600) { return(DCHelper.ErrorMessage("上传的文件不能大于100MB!")); } byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Seek(0, SeekOrigin.Begin); //获取对应文件后缀名 string extension = Path.GetExtension(fileName); //获取文件名 string b_name = Path.GetFileName(fileName); //修改文件名 string newFileName = Guid.NewGuid().ToString("N") + extension; string uploadPath = Path.Combine(filePath, newFileName); //保存文件 MemoryStream ms = new MemoryStream(bytes); FileStream fs = new FileStream(uploadPath, FileMode.Create); ms.WriteTo(fs); ms.Close(); fs.Close(); string b_urlpath = "/UpLoadFiles/BKPayment/" + date + "/" + newFileName; //如果上传文件为封面图片,将图片信息设置到新闻对象中 //if (".jpg".CompareTo(extension) == 0 || ".gif".CompareTo(extension) == 0 || ".png".CompareTo(extension) == 0 || ".jpeg".CompareTo(extension) == 0 || ".bmp".CompareTo(extension) == 0) //{ // newsModel.AttachmentName = b_name; // newsModel.AttachmentSize = decimal.Round((decimal)stream.Length / 1024, 2); // newsModel.Picpath = b_urlpath; //} //else { QtAttachmentModel attachmentModel = new QtAttachmentModel(); attachmentModel.BName = b_name; attachmentModel.BSize = decimal.Round((decimal)stream.Length / 1024, 2); attachmentModel.BTable = "BK3_PAYMENT_MST"; attachmentModel.BType = extension; attachmentModel.BUrlpath = b_urlpath; attachmentModel.PersistentState = PersistentState.Added; attachmentModels.Add(attachmentModel); //} } } else { //获取键值对值,并通过反射获取对象中的属性 string key = content.Headers.ContentDisposition.Name.Replace("\"", string.Empty); string value = await content.ReadAsStringAsync(); var item = typeof(PaymentMstAndXmModel).GetProperty(key); if (item != null) { //获取数据的类型 var propertyType = item.PropertyType; //转换数据的类型 object v = Convert.ChangeType(value, propertyType); item.SetValue(paymentMstAndXm, v); } } } if (AppInfo != null) { MultiDelegatingDbProvider.CurrentDbProviderName = AppInfo.DbName; } //SavedResult<Int64> savedResult = SysNewsService.SaveSysNews(newsModel, attachmentModels); //if (savedResult != null && savedResult.KeyCodes.Count > 0) //{ // return DCHelper.SuccessMessage("新增成功!"); // return DataConverterHelper.SerializeObject(savedResult); //} //else //{ // return DCHelper.ErrorMessage("新增失败!"); //} return(DCHelper.ErrorMessage("ceshiceshi!")); } catch (Exception ex) { return(DCHelper.ErrorMessage(ex.Message)); } }
public async Task <string> PostSave2() { List <QtAttachmentModel> attachmentModels = new List <QtAttachmentModel>(); List <QtAttachmentModel> oldattachmentModels = new List <QtAttachmentModel>(); //具体数据对象 long expensePhid = 0; //判断form表单类型是否正确 if (!Request.Content.IsMimeMultipartContent()) { var data1 = new { Status = ResponseStatus.Error, Msg = "请求数据不是multipart/form-data类型", Data = "" }; return(DataConverterHelper.SerializeObject(data1)); } //I6WebAppInfo i6AppInfo = (I6WebAppInfo)HttpContext.Current.Session["NGWebAppInfo"] ?? null; //获取AppInfo值 头部信息记录 var base64EncodedBytes = Convert.FromBase64String(HttpContext.Current.Request.Headers.GetValues("AppInfo").First()); var jsonText = Encoding.UTF8.GetString(base64EncodedBytes); var AppInfo = JsonConvert.DeserializeObject <AppInfoBase>(jsonText); //如果路径不存在,创建路径 var root = System.Web.Hosting.HostingEnvironment.MapPath("~/UpLoadFiles/ExpenseMst/"); string date = DateTime.Now.ToString("yyyy-MM-dd"); string filePath = Path.Combine(root, date); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } var multipartMemoryStreamProvider = await Request.Content.ReadAsMultipartAsync(); var contentsList = multipartMemoryStreamProvider.Contents; foreach (var content in contentsList) { //通过判断fileName是否为空,是否为文件 if (!string.IsNullOrEmpty(content.Headers.ContentDisposition.FileName)) { //处理文件名字符串 string fileName = content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty); using (Stream stream = await content.ReadAsStreamAsync()) { //文件如果大于100MB 提示不允许 if (stream.Length > 104857600) { return(DCHelper.ErrorMessage("上传的文件不能大于100MB!")); } byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Seek(0, SeekOrigin.Begin); //获取对应文件后缀名 string extension = Path.GetExtension(fileName); //获取文件名 string b_name = Path.GetFileName(fileName); //修改文件名 string newFileName = Guid.NewGuid().ToString("N") + extension; string uploadPath = Path.Combine(filePath, newFileName); //保存文件 MemoryStream ms = new MemoryStream(bytes); FileStream fs = new FileStream(uploadPath, FileMode.Create); ms.WriteTo(fs); ms.Close(); fs.Close(); string b_urlpath = "/UpLoadFiles/ExpenseMst/" + date + "/" + newFileName; QtAttachmentModel attachmentModel = new QtAttachmentModel(); attachmentModel.BName = b_name; attachmentModel.BSize = decimal.Round((decimal)stream.Length / 1024, 2); attachmentModel.BTable = "YS3_EXPENSEMST"; attachmentModel.BType = extension; attachmentModel.BUrlpath = b_urlpath; attachmentModel.PersistentState = PersistentState.Added; attachmentModels.Add(attachmentModel); } } else { //获取键值对值,并通过反射获取对象中的属性 string key = content.Headers.ContentDisposition.Name.Replace("\"", string.Empty); string value = await content.ReadAsStringAsync(); //取项目主键 //projectPhid = long.Parse(value); //取用款计划主键 if (key == "PhId") { expensePhid = long.Parse(value); } else if (key == "OldAttachments") { var value2 = JsonConvert.DeserializeObject <List <QtAttachmentModel> >(value); oldattachmentModels = value2; } ////取用款计划主键 //expensePhid = long.Parse(value); } } if (expensePhid <= 0) { return(DCHelper.ErrorMessage("用款计划保存附件失败!")); } try { SavedResult <long> savedResult = new SavedResult <long>(); //原有的附件要删除 IList <QtAttachmentModel> oldAttachments = new List <QtAttachmentModel>(); oldAttachments = this.QtAttachmentService.Find(t => t.BTable == "YS3_EXPENSEMST" && t.RelPhid == expensePhid).Data; if (oldAttachments != null && oldAttachments.Count > 0) { foreach (var oldAtt in oldAttachments) { oldAtt.PersistentState = PersistentState.Deleted; } this.QtAttachmentService.Save <long>(oldAttachments, ""); } if (attachmentModels != null && attachmentModels.Count > 0) { foreach (var att in attachmentModels) { att.RelPhid = expensePhid; att.BTable = "YS3_EXPENSEMST"; att.PersistentState = PersistentState.Added; } //savedResult = this.QtAttachmentService.Save<long>(attachmentModels, ""); } if (oldattachmentModels != null && oldattachmentModels.Count > 0) { foreach (var oldAtt in oldattachmentModels) { oldAtt.RelPhid = expensePhid; oldAtt.BTable = "YS3_EXPENSEMST"; oldAtt.PersistentState = PersistentState.Added; attachmentModels.Add(oldAtt); } } if (attachmentModels != null && attachmentModels.Count > 0) { savedResult = this.QtAttachmentService.Save <long>(attachmentModels, ""); } return(DataConverterHelper.SerializeObject(savedResult)); } catch (Exception ex) { return(DCHelper.ErrorMessage(ex.Message)); } }
public async Task <string> PostAddAppvalRecords() { List <QtAttachmentModel> attachmentModels = new List <QtAttachmentModel>(); try { GAppvalRecordModel recordModel = new GAppvalRecordModel(); recordModel.PersistentState = PersistentState.Added; //判断form表单类型是否正确 if (!Request.Content.IsMimeMultipartContent()) { var data1 = new { Status = ResponseStatus.Error, Msg = "请求数据不是multipart/form-data类型", Data = "" }; return(DataConverterHelper.SerializeObject(data1)); } //I6WebAppInfo i6AppInfo = (I6WebAppInfo)HttpContext.Current.Session["NGWebAppInfo"] ?? null; //获取AppInfo值 头部信息记录 var base64EncodedBytes = Convert.FromBase64String(HttpContext.Current.Request.Headers.GetValues("AppInfo").First()); var jsonText = Encoding.UTF8.GetString(base64EncodedBytes); var AppInfo = JsonConvert.DeserializeObject <AppInfoBase>(jsonText); //如果路径不存在,创建路径 var root = System.Web.Hosting.HostingEnvironment.MapPath("~/UpLoadFiles/ApprovalRecord/"); string date = DateTime.Now.ToString("yyyy-MM-dd"); string filePath = Path.Combine(root, date); if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } var multipartMemoryStreamProvider = await Request.Content.ReadAsMultipartAsync(); var contentsList = multipartMemoryStreamProvider.Contents; foreach (var content in contentsList) { //通过判断fileName是否为空,是否为文件 if (!string.IsNullOrEmpty(content.Headers.ContentDisposition.FileName)) { //处理文件名字符串 string fileName = content.Headers.ContentDisposition.FileName.Replace("\"", string.Empty); using (Stream stream = await content.ReadAsStreamAsync()) { //文件如果大于100MB 提示不允许 if (stream.Length > 104857600) { return(DCHelper.ErrorMessage("上传的文件不能大于100MB!")); } byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Seek(0, SeekOrigin.Begin); //获取对应文件后缀名 string extension = Path.GetExtension(fileName); //获取文件名 string b_name = Path.GetFileName(fileName); //修改文件名 string newFileName = Guid.NewGuid().ToString("N") + extension; string uploadPath = Path.Combine(filePath, newFileName); //保存文件 MemoryStream ms = new MemoryStream(bytes); FileStream fs = new FileStream(uploadPath, FileMode.Create); ms.WriteTo(fs); ms.Close(); fs.Close(); string b_urlpath = "/UpLoadFiles/ApprovalRecord/" + date + "/" + newFileName; QtAttachmentModel attachmentModel = new QtAttachmentModel(); attachmentModel.BName = b_name; attachmentModel.BSize = decimal.Round((decimal)stream.Length / 1024, 2); attachmentModel.BTable = "SP3_APPVAL_RECORD"; attachmentModel.BType = extension; attachmentModel.BUrlpath = b_urlpath; attachmentModel.PersistentState = PersistentState.Added; attachmentModels.Add(attachmentModel); } } else { //获取键值对值,并通过反射获取对象中的属性 string key = content.Headers.ContentDisposition.Name.Replace("\"", string.Empty); string value = await content.ReadAsStringAsync(); var item = typeof(GAppvalRecordModel).GetProperty(key); if (item != null && value != "") { //获取数据的类型 var propertyType = item.PropertyType; object v; if (key == "NextOperators" || key == "RefbillPhidList") { var value2 = JsonConvert.DeserializeObject <List <long> >(value); v = Convert.ChangeType(value2, propertyType); } else { //转换数据的类型 v = Convert.ChangeType(value, propertyType); } item.SetValue(recordModel, v); } } } if (AppInfo != null) { MultiDelegatingDbProvider.CurrentDbProviderName = AppInfo.DbName; } SavedResult <long> result = new SavedResult <long>(); if (recordModel == null) { return(DCHelper.ErrorMessage("审批数据为空!")); } if (recordModel.ProcPhid == 0) { return(DCHelper.ErrorMessage("审批流程id为空!")); } if (recordModel.PostPhid == 0) { return(DCHelper.ErrorMessage("审批岗位id为空!")); } if (string.IsNullOrEmpty(recordModel.FBilltype)) { return(DCHelper.ErrorMessage("单据类型为空!")); } if (recordModel.NextOperators == null || recordModel.NextOperators.Count <= 0) { return(DCHelper.ErrorMessage("单据的下一审批人不能为空!")); } recordModel.QtAttachments = attachmentModels; result = this.GAppvalRecordService.AddAppvalRecord(recordModel); return(DataConverterHelper.SerializeObject(result)); } catch (Exception e) { return(DCHelper.ErrorMessage(e.Message)); } }