コード例 #1
0
        public async Task <IActionResult> FileLoadedView(FileLoadModel fileLoadedModel)
        {
            var loadedFile = fileLoadedModel.FileContentLoaded;

            if (loadedFile == null)
            {
                return(View(ErrorMessage()));
            }
            long fileSize = loadedFile.Length;

            if (fileSize < 1)
            {
                return(View(ErrorMessage()));
            }

            var fileName = loadedFile.FileName;
            var result   = await _fileLoadService.AZFileStorer(loadedFile, fileLoadedModel.FileTypeExt);

            if (result == "Success")
            {
                _fileServiceModel.fileName = fileName;
                _fileServiceModel.fileSize = fileSize.ToString();
                _fileServiceModel.status   = "File Loaded";
                _fileServiceModel.fileExt  = fileLoadedModel.FileTypeExt;
            }
            else
            {
                return(View(ErrorMessage()));
            }

            return(View(_fileServiceModel));
            //return View();
        }
コード例 #2
0
        public async Task <IActionResult> Upload(FileLoadModel loadModel)
        {
            if (ModelState.IsValid)
            {
                IFormFile uploadedFile = loadModel.UploadedFile;

                User user = _hostingCore.GetUserByEmail(User.Identity.Name);

                if (user != null && uploadedFile != null)
                {
                    if (uploadedFile.FileName.Length > 100)
                    {
                        ModelState.AddModelError("", "Max file name length is 100 symbols");

                        return(View(loadModel));
                    }

                    IEnumerable <HostingFile> userFiles = _hostingCore.GetUserFiles(user.Id);

                    var selectedFiles = from userFile in userFiles
                                        where userFile.Name == uploadedFile.FileName
                                        select userFile;

                    if (selectedFiles?.Count() > 0)
                    {
                        ModelState.AddModelError("", "You already uploaded a file with this name");

                        return(View(loadModel));
                    }

                    var link = $"Files/{user.Id}/";

                    var file = new HostingFile
                    {
                        AuthorId    = user.Id,
                        Name        = uploadedFile.FileName,
                        Size        = uploadedFile.Length,
                        Category    = loadModel.Category,
                        Description = loadModel.Description,
                        Link        = link
                    };

                    _hostingCore.InsertFile(file);

                    userFiles = _hostingCore.GetUserFiles(user.Id);

                    selectedFiles = from userFile in userFiles
                                    where userFile.Name == uploadedFile.FileName
                                    select userFile;

                    file = selectedFiles.FirstOrDefault();

                    file.Link += file.Id;

                    _hostingCore.UpdateFile(file.Id, file);

                    var path = _appEnvironment.WebRootPath + $"/Files/{user.Id}/";

                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }

                    path += file.Id;

                    using (var fileStream = new FileStream(path, FileMode.Create))
                    {
                        await uploadedFile.CopyToAsync(fileStream);
                    }

                    return(RedirectToAction("UserPage", "Hosting", new { userId = file.AuthorId }));
                }

                return(View(loadModel));
            }

            ModelState.AddModelError("", "An error occurred during uploading");
            return(View(loadModel));
        }