public IHttpActionResult Base64() { if (!Request.Content.IsMimeMultipartContent()) { return(Json(new MessageResult { Status = false, Message = "文件格式错误" })); } var resultList = new List <object>(); var provider = new MultipartFilesMemoryStreamProvider(); try { var result = Task.Run(async() => await Request.Content.ReadAsMultipartAsync(provider)).Result; string refId = result.FormData.GetValues("referenceId").FirstOrDefault(); string code = result.FormData.GetValues("code").FirstOrDefault(); Guid referenceId = Guid.Empty; Guid.TryParse(refId, out referenceId); foreach (var stream in result.Contents) { var filename = stream.Headers.ContentDisposition.FileName; if (string.IsNullOrWhiteSpace(filename)) { continue; } var model = new F_FileDTO { Name = string.Format("{0}.png", DateTime.Now.Ticks.ToString()), Data = stream.ReadAsStreamAsync().Result, ReferenceId = referenceId, Code = code, CreatedBy = Guid.NewGuid(), //this.User.Id, ModifiedBy = Guid.NewGuid(), //this.User.Id, Path = System.Web.HttpContext.Current.Server.MapPath("~/uploads") }; model = this._IF_FileService.Create(model); resultList.Add(new { Id = model.Id, Path = model.Path, Code = model.Code }); } } catch (Exception e) { return(Json(new MessageResult { Status = false, Message = e.InnerException.Message })); } return(Json(new MessageResult { Status = true, Message = "文件上传成功", Data = resultList.Count() > 0 ? resultList[0] : null })); }
public F_FileDTO Create(F_FileDTO dto) { var url = System.Web.HttpContext.Current.Request.Url; var fullPath = string.Format("{0}://{1}", url.Scheme, url.Authority); var storePath = Path.Combine("/uploads", string.Format("{0}", DateTime.Now.ToString("yyyy-MM-dd"))); storePath = fullPath + storePath; var path = Path.Combine(dto.Path, string.Format("{0}", DateTime.Now.ToString("yyyy-MM-dd"))); this.CreateFile(dto.Data, dto.Name, path); dto.Path = Path.Combine(storePath, dto.Name); return(base.F_Create <F_FileDTO, F_File>(dto , _IF_FileRepository , dtoAction => { })); }