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)); }
/// <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); }