public static MaterialModelCollection ProcessMaterialUpload(this HttpRequestMessage request) { MaterialModelCollection materials = new MaterialModelCollection(); request.Content.IsMimeMultipartContent("form-data").FalseThrow("上传请求的格式不正确"); InMemoryMultipartFormDataStreamProvider provider = InMemoryMultipartFormDataStreamProvider.GetProvider(request); string mumJson = provider.FormData.GetValue("materialUploadModel", string.Empty); MaterialUploadModel uploadModel = null; if (mumJson.IsNotEmpty()) { JsonSerializerSettings settings = new JsonSerializerSettings(); settings.ContractResolver = new CamelCasePropertyNamesContractResolver(); uploadModel = JsonConvert.DeserializeObject <MaterialUploadModel>(mumJson); } else { uploadModel = new MaterialUploadModel(); } foreach (StreamContent fileContent in provider.Files) { if (uploadModel.OriginalName.IsNullOrEmpty()) { ContentDispositionHeaderValue contentDisposition = fileContent.Headers.ContentDisposition; if (contentDisposition != null) { string fileName = contentDisposition.FileName.Replace("\"", string.Empty); uploadModel.OriginalName = Path.GetFileName(fileName); } } MaterialModel material = uploadModel.GenerateMaterial(); IMaterialContentPersistManager persistManager = GetMaterialContentPersistManager(material.ID, GetTempUploadFilePath(material.ID, uploadModel.RootPathName, uploadModel.OriginalName)); persistManager.SaveTempMaterialContent(material.ID, fileContent.ReadAsStreamAsync().Result); materials.Add(material); } return(materials); }
public static MaterialContent UploadMaterialWriteDB(MaterialModel model, string DBName) { MaterialModel material = model; MaterialModelCollection materials = new MaterialModelCollection(); materials.Add(material); MaterialModelHelper helper = MaterialModelHelper.GetInstance(DBName); helper.Update(materials); Material loaded = helper.LoadByResourceID(material.ResourceID).FirstOrDefault(); MaterialContent content = MaterialContentAdapter.Instance.Load(loaded.ID); return(content); }