예제 #1
0
        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;
        }
예제 #2
0
        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;
        }