Beispiel #1
0
        public async Task <IActionResult> UpLoad(List <IFormFile> files, [Bind("Guid,CreateTime,UpdateTime,Title,Name,FileName,Length,ContentType")] File file)
        {
            foreach (var f in files)
            {
                var fileName = f.FileName;
                fileName = $@"{hostingEnvironment.WebRootPath}\UpLoad\{fileName}";
                if (!Directory.Exists($@"{hostingEnvironment.WebRootPath}\UpLoad"))
                {
                    Directory.CreateDirectory($@"{hostingEnvironment.WebRootPath}\UpLoad");
                }
                using (var fileStream = new FileStream(fileName, FileMode.Create))
                {
                    await f.CopyToAsync(fileStream);

                    file.Guid        = Guid.NewGuid();
                    file.CreateTime  = DateTime.Now;
                    file.UpdateTime  = DateTime.Now;
                    file.Name        = f.FileName;
                    file.FileName    = fileName;
                    file.Length      = fileStream.Length;
                    file.ContentType = fileName.Substring(fileName.LastIndexOf(".", StringComparison.Ordinal) + 1);
                    fileStream.Flush();
                }
                context.Add(file);
                await context.SaveChangesAsync();
            }
            return(RedirectToAction(nameof(Index)));
        }
        public IActionResult CreateFile([FromBody] File file)
        {
            try
            {
                if (file == null)
                {
                    return(BadRequest("File object is null"));
                }

                if (!ModelState.IsValid)
                {
                    return(BadRequest("Invalid model object"));
                }

                int.TryParse(_configuration["fileUploadRestrictions:maxFileSizeInBytes"], out int maxFileSize);

                if (file.FileSize > maxFileSize)
                {
                    return(Problem(detail: $"File size cannot be bigger than limit ({maxFileSize} bytes)", title: "Error"));
                }

                var allowedFileTypesString = _configuration["fileUploadRestrictions:allowedFileTypes"];
                var allowedFileTypes       = allowedFileTypesString.Split('|').ToList();

                if (!allowedFileTypes.Contains(file.FileType))
                {
                    return(Problem(detail: $"Only files with these types can be uploaded: {allowedFileTypesString}", title: "Error"));
                }

                file.Id         = Guid.NewGuid();
                file.UploadDate = DateTime.UtcNow;
                _context.Add(file);
                _context.SaveChanges();

                return(StatusCode(201));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, $"Internal server error: {ex}"));
            }
        }
Beispiel #3
0
        public async Task <IActionResult> Create(ViewFile model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFilename = null;
                if (model.formFile != null)
                {
                    string ext = System.IO.Path.GetExtension(model.formFile.FileName);
                    if (ext == ".pdf")
                    {
                        string upload = System.IO.Path.Combine(_env.WebRootPath, "images");
                        uniqueFilename = Guid.NewGuid().ToString() + "_" + model.formFile.FileName;
                        string filepath = System.IO.Path.Combine(upload, uniqueFilename);
                        model.formFile.CopyTo(new System.IO.FileStream(filepath, System.IO.FileMode.Create));
                        //string filepath = $"{_env.WebRootPath}/images/{model.formFile.FileName}";
                        //var stream = System.IO.File.Create(filepath);
                        //model.formFile.CopyTo(stream);
                    }
                    else
                    {
                        TempData["Error"] = "Only Pdf files are allowed";
                        return(RedirectToAction("Create", "Files"));
                    }
                }


                File newfile = new File
                {
                    Yid      = model.Yid,
                    Yoganame = model.Yoganame,
                    photo    = uniqueFilename,
                };
                _context.Add(newfile);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }


            return(View());
        }