示例#1
0
        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
            }));
        }
示例#2
0
        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 => { }));
        }