public async Task<WebApiResult<string>> AddResourceItem() { WebApiResult<string> result = new WebApiResult<string>(); UploadedFilesResizer resizer = new UploadedFilesResizer(); string originalPath = resizer.configPath; //string originalPath = System.Configuration.ConfigurationManager.AppSettings["ResourceItemPath"]; string path = originalPath; // 检查是否是 multipart/form-data if (!Request.Content.IsMimeMultipartContent("form-data")) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } HttpResponseMessage response = null; try { path = HttpContext.Current.Server.MapPath(path); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } // 设置上传目录 var provider = new RenamingMultipartFormDataStreamProvider(path); // 接收数据,并保存文件 var bodyparts = await Request.Content.ReadAsMultipartAsync(provider); response = Request.CreateResponse(HttpStatusCode.Accepted); FileInfo fi = new FileInfo(provider.FileData[0].LocalFileName); if (fi.Exists) { try { Basic_ResourceItem resourceItem = new Basic_ResourceItem { Filename = fi.Name, FileType = fi.Extension, FileLength = fi.Length, Url = string.Format("{0}{1}", originalPath, fi.Name), CreatedAt = DateTime.Now, Deleted = false }; result = _resourceItemService.AddResourceitem(resourceItem); resizer.CreateSizedImages(provider.FileData[0].LocalFileName); fi = null; } catch (Exception ex) { result.AddError(ex.Message); } } } catch { throw new HttpResponseException(HttpStatusCode.BadRequest); } return result; }
public WebApiResult<string> AddResourceitem(Basic_ResourceItem ResourceItem) { WebApiResult<string> result = new WebApiResult<string>(); var resourceItem = DataContext.Basic_ResourceItem.FirstOrDefault(x => x.Deleted == false && (x.Filename == ResourceItem.Filename || x.Url == ResourceItem.Url)); if (resourceItem != null) { resourceItem.Url = ResourceItem.Url; result.Data = resourceItem.Id.ToString(); DataContext.SaveChanges(); } else { DataContext.Basic_ResourceItem.Add(ResourceItem); DataContext.SaveChanges(); result.Data = ResourceItem.Id.ToString(); } return result; }