Esempio n. 1
0
        public IActionResult Upload(UploadViewModel model)
        {
            List <UploadResult> result = new List <UploadResult>();

            #region Form.Files 文件

            IFormFileCollection files = HttpContext.Request.Form.Files;

            if (null != files && files.Count > 0)
            {
                FormFileUploadViewModel fileModel = new FormFileUploadViewModel();

                foreach (IFormFile file in files)
                {
                    model.CopyTo(fileModel);

                    fileModel.File = file;

                    var itemResult = UploadItemByFormFile(fileModel);

                    result.Add(itemResult);
                }
            }

            #endregion

            #region Form.Base64 文件

            Dictionary <string, string> base64Dictionary = new Dictionary <string, string>();

            var formCollection = Request.Form;

            foreach (var fc in formCollection)
            {
                if (_regexBase64.IsMatch(fc.Value))
                {
                    base64Dictionary.Add(fc.Key, fc.Value);
                }
            }

            if (null != base64Dictionary && base64Dictionary.Count > 0)
            {
                Base64UploadViewModel base64Model = null;

                foreach (var file in base64Dictionary)
                {
                    model.CopyTo(base64Model);
                    base64Model.Data      = file.Value;
                    base64Model.FieldName = file.Key;

                    var itemResult = UploadItemByBase64(base64Model);

                    result.Add(itemResult);
                }
            }

            #endregion

            return(Json(result));
        }
Esempio n. 2
0
        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="model">FormFile文件上传视图模型</param>
        /// <returns></returns>
        private UploadResult UploadItemByFormFile(FormFileUploadViewModel model)
        {
            UploadResult result = new UploadResult();

            try
            {
                if (model.File == null)
                {
                    result.Message = "文件对象为空";
                }
                else
                {
                    //是否为图片文件
                    bool isImage = model.File.IsImage();

                    if (isImage)
                    {
                        Image image = Image.FromStream(model.File.OpenReadStream(), true, true);

                        result = image.Save(
                            model.File.Length,
                            model.SavePath,
                            model.FixedPath,
                            model.Name,
                            model.Extension.GetImageFormat(),
                            model.BeOverride,
                            model.CompressIfGreaterSize,
                            model.MaxWidth,
                            model.MaxHeight,
                            model.CutIfOut);
                    }
                    else
                    {
                        result = model.File.Save(model.SavePath, model.FixedPath, model.Name, model.BeOverride) ?? new UploadResult();;
                    }

                    if (result == null)
                    {
                        result = new UploadResult {
                            Message = "上传失败"
                        }
                    }
                    ;

                    //标识字段名
                    result.FieldName = model.File.GetFieldName();
                }
            }
            catch
            {
                result.Message = "文件上传失败";
            }

            return(result);
        }