public async Task <IActionResult> DeleteConfirmed(long id) { SQLFile sQLFile = await _sqlcontext.SQLFile.SingleAsync(m => m.FileId == id); SQLFileContent sQLCont = await _sqlcontext.SQLFileContent.SingleAsync(m => m.SQLFileId == sQLFile.FileId); _sqlcontext.SQLFileContent.Remove(sQLCont); _sqlcontext.SQLFile.Remove(sQLFile); await _sqlcontext.SaveChangesAsync(); return(RedirectToAction("Index")); }
public async Task Remove(IList <IFormFile> UploadFiles) { IFormFile file = UploadFiles[0]; string filename = ContentDispositionHeaderValue .Parse(file.ContentDisposition) .FileName .Trim('"'); string nameonly = Path.GetFileNameWithoutExtension(filename); string extonly = Path.GetExtension(filename); string fname = nameonly + extonly; SQLFile x = await _db.SQLFile.SingleOrDefaultAsync(p => p.FileName == fname); if (x == null) { return; } SQLFileContent y = await _db.SQLFileContent.SingleOrDefaultAsync(p => p.SQLFileId == x.FileId); _db.SQLFileContent.Remove(y); await _db.SaveChangesAsync(); _db.SQLFile.Remove(x); await _db.SaveChangesAsync(); Response.Clear(); Response.StatusCode = 200; Response.HttpContext.Features.Get <IHttpResponseFeature>().ReasonPhrase = "File removed successfully"; //try //{ // var filename = hostingEnv.ContentRootPath + $@"\{UploadFiles[0].FileName}"; // if (System.IO.File.Exists(filename)) // { // System.IO.File.Delete(filename); // } //} //catch (Exception e) //{ // Response.Clear(); // Response.StatusCode = 200; // Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = "File removed successfully"; // Response.HttpContext.Features.Get<IHttpResponseFeature>().ReasonPhrase = e.Message; //} }
public async Task <IActionResult> Create(SQLFile sQLFile, IFormFile file) { long retId = 0; string fname = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.ToString().Trim('"'); string nameonly = Path.GetFileNameWithoutExtension(fname); string extonly = Path.GetExtension(fname); // ReSharper disable once ConditionIsAlwaysTrueOrFalse #pragma warning disable 162 if (true || ModelState.IsValid) #pragma warning restore 162 { try { if (file.Length > 0 && file.Length < 0x7FFFFFFF) { if (!file.ContentType.StartsWith("image") && !User.IsInRole("Admin")) { return(RedirectToAction("Index")); } SQLFileContent content = new SQLFileContent { Content = new byte[file.Length] }; using (Stream reader = file.OpenReadStream()) { int x = await reader.ReadAsync(content.Content, 0, (int)file.Length); if (x != file.Length) { return(RedirectToAction("Index")); } } sQLFile.ContentType = file.ContentType; sQLFile.Contributor = User.Identity.Name; sQLFile.FileName = fname; _sqlcontext.SQLFile.Add(sQLFile); await _sqlcontext.SaveChangesAsync(); retId = sQLFile.FileId; content.SQLFileId = retId; _sqlcontext.SQLFileContent.Add(content); await _sqlcontext.SaveChangesAsync(); retId = content.SQLFileId; fname = nameonly + "." + retId + extonly; sQLFile.FileName = fname; _sqlcontext.Entry(sQLFile).State = EntityState.Modified; await _sqlcontext.SaveChangesAsync(); } else { return(RedirectToAction("Index")); } } catch (Exception) { //string meg = ex.Message; //Log the error (uncomment dex variable name and add a line here to write a log. ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); } if (retId < 1) { return(RedirectToAction("Index")); } return(RedirectToAction("Index")); } // ReSharper disable once HeuristicUnreachableCode #pragma warning disable 162 return(RedirectToAction("Index")); #pragma warning restore 162 }
public async Task Save(IList <IFormFile> UploadFiles) { try { foreach (IFormFile file in UploadFiles) { var filename = ContentDispositionHeaderValue .Parse(file.ContentDisposition) .FileName .Trim('"'); string nameonly = Path.GetFileNameWithoutExtension(filename); string extonly = Path.GetExtension(filename); string fname = nameonly + extonly; SQLFile x = await _db.SQLFile.SingleOrDefaultAsync(p => p.FileName == fname); if (x != null) // already exists { Response.Clear(); Response.StatusCode = 409; Response.HttpContext.Features.Get <IHttpResponseFeature>().ReasonPhrase = "File already exists"; return; } SQLFile SqlFile = new SQLFile(); SQLFileContent SqlFileContent = new SQLFileContent { Content = new byte[file.Length] }; using (Stream reader = file.OpenReadStream()) { int xx = await reader.ReadAsync(SqlFileContent.Content, 0, (int)file.Length); if (xx != file.Length) { Response.Clear(); Response.StatusCode = 204; Response.HttpContext.Features.Get <IHttpResponseFeature>().ReasonPhrase = "File failed to upload"; return; } } SqlFile.ContentType = file.ContentType; SqlFile.Contributor = "unknown"; SqlFile.FileName = filename; _db.SQLFile.Add(SqlFile); await _db.SaveChangesAsync(); long retId = SqlFile.FileId; SqlFileContent.SQLFileId = retId; _db.SQLFileContent.Add(SqlFileContent); await _db.SaveChangesAsync(); retId = SqlFileContent.SQLFileId; SqlFile.FileName = fname; _db.Entry(SqlFile).State = EntityState.Modified; await _db.SaveChangesAsync(); //filename = hostingEnv.ContentRootPath + "\\wwwroot" + $@"\{filename}"; //if (!System.IO.File.Exists(filename)) //{ // using (FileStream fs = System.IO.File.Create(filename)) // { // file.CopyTo(fs); // fs.Flush(); // } //} } } catch (Exception e) { Response.Clear(); Response.StatusCode = 204; Response.HttpContext.Features.Get <IHttpResponseFeature>().ReasonPhrase = "File failed to upload"; Response.HttpContext.Features.Get <IHttpResponseFeature>().ReasonPhrase = e.Message; } }