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}")); } }
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()); }