예제 #1
0
        public async Task <IActionResult> Post([FromForm] FileAddModel model)
        {
            var files = Request.Form.Files;

            if (!ModelState.IsValid)
            {
                return(BadRequest(model));
            }
            else
            {
                var entity = new DAL.Models.File();
                entity.CategoryId  = model.CatId;
                entity.Name        = model.File.FileName;
                entity.Description = model.Description;
                entity.Type        = ContentTypeTranslator.GetFileType(model.File.ContentType);

                using (var memoryStream = new MemoryStream())
                {
                    await model.File.CopyToAsync(memoryStream);

                    entity.Data = memoryStream.ToArray();
                }

                this._fileManager.Add(entity);
                return(Ok());
            }
        }
예제 #2
0
 public FileModel(File file)
 {
     Id = file.Id;
     Path = file.Path;
     FileType = (FileTypeEnum) file.FileType;
     Extension = file.Extension;
     Name = file.Name;
     Size = file.Size;
 }
예제 #3
0
        public async Task <ActionResult> UploadFile()
        {
            try
            {
                var    file         = Request.Form.Files[0];
                var    uploadedFile = new File();
                string newPath      = Path.Combine(_config.ProjectFilesLocation, uploadedFile.Id.ToString());

                string fullPath = String.Empty;
                if (!Directory.Exists(newPath))
                {
                    Directory.CreateDirectory(newPath);
                }
                if (file.Length > 0)
                {
                    string fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                    fullPath = Path.Combine(newPath, fileName);
                    using (var stream = new FileStream(fullPath, FileMode.Create))
                    {
                        file.CopyTo(stream);
                    }

                    if (newPath.IsNullOrEmpty())
                    {
                        throw new InvalidOperationException("File Path is null or empty");
                    }

                    uploadedFile.Path        = Path.Combine(uploadedFile.Id.ToString(), fileName).Replace(@"\", "/");
                    uploadedFile.Downloads   = 0;
                    uploadedFile.CreatedDate = DateTime.Now;
                    uploadedFile.UpdatedDate = DateTime.Now;
                }
                return(Ok(new { uploadedFile }));
            }
            catch (System.Exception ex)
            {
                return(StatusCode(500, "Internal server error"));
            }
        }