예제 #1
0
        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));
        }
예제 #2
0
        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 }));
        }
예제 #3
0
        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);
            }
        }