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));
            }
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
        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));
            }
        }