public IActionResult SheetAttachment(int sheetID) { //url en sheetId wordt opgehaald uit de submitTimeSheet action in de sheet controller //deze worden in de view gebruikt om de geuploade bestanden aan de sheetID te linken var file = new FileSheetUploadViewModel { sheetID = sheetID }; return(View(@"~/Views/Attachments/SheetAttachments.cshtml", file)); }
public async Task <IActionResult> SubmitSheetFiles(FileSheetUploadViewModel model) { //deze action heeft betrekking tot het uploaden van bestanden die betrekking hebben de in te vullen uren formulier, bijv declaratieformulier //check of er wel bestanden de view worden geupload if (model.Files != null) { //userid van ingelogde gebruiker wordt opgehaald var userid = userManager.GetUserId(HttpContext.User); //deze userid wordt gebruikt om de gebruiker object op te halen var currentUser = await userManager.FindByIdAsync(userid); //de file wordt middels het model doorgegeven en opgeslagen met koppeling naar de user UploadSheetFile(currentUser, model); return(RedirectToAction("viewusersheetfiles", new { model.sheetID })); } return(RedirectToAction("viewsheetfiles", new { model.sheetID })); }
void UploadSheetFile(ApplicationUser user, FileSheetUploadViewModel model) { // bestanden die betrekking hebben op het urenformulier, zoals declaratieformulier, onkosten // voor elk bestand dat wordt geupload wordt deze loop uitgevoerd foreach (var file in model.Files) { //de pad van de folder, waar het bestand wordt opgeslagen var uploadPath = $@"wwwroot/Uploads/Attachments/"; //het bestaan van de pad hierboven wordt gecontroleerd en als die niet bestaat worden de mappen aangemaakt if (!Directory.Exists(uploadPath)) { Directory.CreateDirectory(uploadPath); } var date = DateTime.Now.ToString("ddMMyyyy"); //de volledige bestandsnaam wordt gesplitst in naam en extensie var fileExtension = Path.GetExtension(file.FileName); var fileNoExtension = Path.GetFileNameWithoutExtension(file.FileName); //de volledige bestandsnaam krijgt een andere naam var fileName = $"{user.Firstname}_{user.Lastname}_{date}_{fileNoExtension}"; //hier wordt de volledige pad samengesteld en kopie opgeslagen van het bestand dat wordt geupload using (var fileStream = new FileStream(Path.Combine(uploadPath, fileName + fileExtension), FileMode.Create, FileAccess.Write)) { file.CopyTo(fileStream); } //volledige pad naar bestand var filePath = $@"~/Uploads/Attachments/" + fileName + fileExtension; //referentie(pad) naar het bestand wordt opgeslagen in de database fileRepo.UploadFile(user, filePath, model.sheetID); } }