layUI上传以及后台post传递file

前端前台代码

var uploadInst = upload.render({
            elem: '#tjbtn' //绑定元素
            ,accept:"file"
            , url: '/api/Bridge/layuiuploadfile' //上传接口
            , done: function (job) {
                if (job.Code == "200") {
                    //业务逻辑
                } else {
                    layer.msg(job.Msg);
                }
            }
            , error: function () {
                //请求异常回调
            }
        });

前端后台代码
 /// <summary>
        /// layUI上传接口
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public ReturnObj layuiuploadfile()
        {
            try
            {
                
             
                HttpFileCollection files = HttpContext.Current.Request.Files;
                using (var client = new HttpClient())
                {
                    using (var multipartFormDataContent = new MultipartFormDataContent())
                    {
                        var values = new[]
                        {
                            new KeyValuePair<string, string>("a", ""),
                            new KeyValuePair<string, string>("b", ""),
                            new KeyValuePair<string, string>("c", ""),
                            new KeyValuePair<string, string>("d", "")
                             //other values
                        };
                        foreach (var keyValuePair in values)
                        {
                            multipartFormDataContent.Add(new StringContent(keyValuePair.Value),
                                String.Format("\"{0}\"", keyValuePair.Key));
                        }
                        for (int i = 0; i < files.Count; i++)
                        {
                            Stream stream = files[i].InputStream;
                            byte[] bytes = new byte[stream.Length];
                            stream.Seek(0, SeekOrigin.Begin);
                            stream.Read(bytes, 0, bytes.Length);
                            multipartFormDataContent.Add(new ByteArrayContent(bytes), "file", files[i].FileName);
                        }
                        string html = client.PostAsync("http://xxx.xxx.xxx/api/Upload/UploadFile", multipartFormDataContent).Result.Content.ReadAsStringAsync().Result;
                        returnObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ReturnObj>(html);
                    }
                }
            }
            catch (Exception e)
            {
                returnObj.Code = "500";
                returnObj.Msg = "后台错误";
            }
            return returnObj;
        }
接口端代码
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
                if (files.Count > 0)
                {
                    List<FuJian> arr = new List<FuJian>();
                    for (int i = 0; i < files.Count; i++)
                    {
                        FuJian aa = new FuJian();
                        string FileName = files[i].FileName;
                        string strSuiji = System.DateTime.Now.ToString("yyyyMMddHHmmss");//随机数//实际的名称
                        string fileTrueName = "UploadFile_" + i + strSuiji + "_" + FileName;
                        aa.FileName = FileName;
                        aa.SaveName = fileTrueName;
                        string size = Math.Round((double)files[i].ContentLength / 1024, 2).ToString(); 
                        aa.Size = size;
                        string filetype = Path.GetExtension(files[0].FileName).ToLower();
                        aa.FileType = filetype.Substring(1);
                        arr.Add(aa);
                    }
                    returnObj.Code = "200";
                    returnObj.Msg = "成功";
                    returnObj.Data = arr;
                }
                else
                {
                    returnObj.Code = "500";
                    returnObj.Msg = "未获取到上传文件";
                }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值