diff options
-rw-r--r-- | backend/api/api/.gitignore | 3 | ||||
-rw-r--r-- | backend/api/api/Controllers/AuthController.cs | 6 | ||||
-rw-r--r-- | backend/api/api/Controllers/FileUploadController.cs | 47 | ||||
-rw-r--r-- | backend/api/api/api.csproj | 4 |
4 files changed, 54 insertions, 6 deletions
diff --git a/backend/api/api/.gitignore b/backend/api/api/.gitignore index 8afdcb63..242abea5 100644 --- a/backend/api/api/.gitignore +++ b/backend/api/api/.gitignore @@ -3,6 +3,9 @@ ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore +##Ignore contents for UploadedFiles Folder +UploadedFiles/* + # User-specific files *.rsuser *.suo diff --git a/backend/api/api/Controllers/AuthController.cs b/backend/api/api/Controllers/AuthController.cs index c74c579d..01354f87 100644 --- a/backend/api/api/Controllers/AuthController.cs +++ b/backend/api/api/Controllers/AuthController.cs @@ -30,12 +30,6 @@ namespace api.Controllers return Ok(_auth.Login(user)); } - [HttpGet("Auth")] - [Authorize(Roles ="User")] - public async Task<ActionResult<string>> TestAuth() - { - return Ok("works"); - } } diff --git a/backend/api/api/Controllers/FileUploadController.cs b/backend/api/api/Controllers/FileUploadController.cs new file mode 100644 index 00000000..46e7f4f9 --- /dev/null +++ b/backend/api/api/Controllers/FileUploadController.cs @@ -0,0 +1,47 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +namespace api.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class FileUploadController : ControllerBase + { + private string[] permittedExtensions = { ".csv" }; + + + [HttpPost("Csv")] + [Authorize(Roles = "User")] + public async Task<ActionResult<string>> CsvUpload([FromForm]IFormFile file,[FromForm]string username)//???Umesto username poslati jwt odakle se moze preuzeti username radi sigurnosti + { + 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(),"UploadedFiles",username); + if (!Directory.Exists(folderPath)) + { + Directory.CreateDirectory(folderPath); + } + + var fullPath = Path.Combine(folderPath, filename); + int i=0; + + while (System.IO.File.Exists(fullPath)) { + i++; + fullPath = Path.Combine(folderPath,name+i.ToString()+ext); + } + + + + using (var stream=new FileStream(fullPath, FileMode.Create)) + { + await file.CopyToAsync(stream); + } + + return Ok(); + } + } +} diff --git a/backend/api/api/api.csproj b/backend/api/api/api.csproj index 6081cd21..46842c3e 100644 --- a/backend/api/api/api.csproj +++ b/backend/api/api/api.csproj @@ -18,4 +18,8 @@ <PackageReference Include="MongoDB.Driver" Version="2.14.1" /> </ItemGroup> + <ItemGroup> + <Folder Include="UploadedFiles\" /> + </ItemGroup> + </Project> |