예제 #1
0
        public async Task <IActionResult> Index()
        {
            try
            {
                var boundary = MultipartRequestHelper.GetBoundary(MediaTypeHeaderValue.Parse(Request.ContentType), DefaultFormOptions.MultipartBoundaryLengthLimit);
                var reader   = new MultipartReader(boundary, HttpContext.Request.Body);
                var section  = reader.ReadNextSectionAsync().Result;
                while (section != null)
                {
                    ContentDispositionHeaderValue.TryParse(section.ContentDisposition, out var contentDisposition);
                    if (MultipartRequestHelper.HasFileContentDisposition(contentDisposition))
                    {
                        var fileNameUpload = HeaderUtilities.RemoveQuotes(contentDisposition.FileName).Value;
                        var bytes          = StreamToBytes(section.Body);
                        var result         = await _fileAppService.Upload(fileNameUpload, bytes);

                        return(Json(result));
                    }
                    section = await reader.ReadNextSectionAsync();
                }
                return(NoContent());
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }
예제 #2
0
        /// <summary>
        /// 创建文档
        /// </summary>
        /// <param name="file"></param>
        /// <param name="category"></param>
        /// <returns></returns>
        public async Task <DocumentDto> CreateDocument(IFormFile file, string category = "Files")
        {
            var fileDto = await _fileAppService.Upload(file, category : category);

            return(await Create(new DocumentDto
            {
                Category = fileDto.Category,
                OriginalName = fileDto.OriginalName,
                StorageName = fileDto.StorageName
            }));
        }