diff options
Diffstat (limited to 'backend/api/api/Controllers/FileController.cs')
-rw-r--r-- | backend/api/api/Controllers/FileController.cs | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/backend/api/api/Controllers/FileController.cs b/backend/api/api/Controllers/FileController.cs index 3bfdad93..fb3df61a 100644 --- a/backend/api/api/Controllers/FileController.cs +++ b/backend/api/api/Controllers/FileController.cs @@ -74,7 +74,9 @@ namespace api.Controllers FileModel fileModel= new FileModel(); fileModel.path=fullPath; fileModel.username=username; - fileModel=_fileservice.Create(fileModel); + fileModel.date = DateTime.Now.ToUniversalTime(); + fileModel =_fileservice.Create(fileModel); + return Ok(fileModel); } @@ -107,6 +109,53 @@ namespace api.Controllers } + [HttpPost("TempUpload")] + public async Task<ActionResult<string>> TempUpload([FromForm] IFormFile file) + { + + //get username from jwtToken + string username = ""; + //Check filetype + var filename = file.FileName; + var ext = Path.GetExtension(filename).ToLowerInvariant(); + var name = Path.GetFileNameWithoutExtension(filename).ToLowerInvariant(); + if (string.IsNullOrEmpty(ext) || !permittedExtensions.Contains(ext)) + { + return BadRequest("Wrong file type"); + } + var folderPath = Path.Combine(Directory.GetCurrentDirectory(), "TempFiles"); + //Check Directory + if (!Directory.Exists(folderPath)) + { + Directory.CreateDirectory(folderPath); + } + //Index file if same filename + var fullPath = Path.Combine(folderPath, filename); + int i = 0; + + while (System.IO.File.Exists(fullPath)) + { + i++; + fullPath = Path.Combine(folderPath, name + i.ToString() + ext); + } + + + //Write file + using (var stream = new FileStream(fullPath, FileMode.Create)) + { + await file.CopyToAsync(stream); + } + FileModel fileModel = new FileModel(); + fileModel.path = fullPath; + fileModel.username = username; + fileModel.date = DateTime.Now.ToUniversalTime(); + fileModel = _fileservice.Create(fileModel); + + + return Ok(fileModel); + } + + } } |