Asp.net 正在更新映像错误消息(因为另一个进程正在使用它)
我有一个功能可以在asp.net核心应用程序中编辑带有图像的Asp.net 正在更新映像错误消息(因为另一个进程正在使用它),asp.net,asp.net-mvc,file,asp.net-core,razor,Asp.net,Asp.net Mvc,File,Asp.net Core,Razor,我有一个功能可以在asp.net核心应用程序中编辑带有图像的书籍,但当我编辑书籍时,会出现以下错误: IOException:进程无法访问该文件 'C:\Users\Mostafa\source\repos\Library\Library\wwwroot\uploads\image.jpg' 因为它正被另一个进程使用 这是我的控制器中的编辑功能: [HttpPost] public IActionResult Update(Book book, BookViewModel bookV
书籍
,但当我编辑书籍时,会出现以下错误:
IOException:进程无法访问该文件
'C:\Users\Mostafa\source\repos\Library\Library\wwwroot\uploads\image.jpg'
因为它正被另一个进程使用
这是我的控制器中的编辑功能:
[HttpPost]
public IActionResult Update(Book book, BookViewModel bookViewModel)
{
string fileName = string.Empty;
if (bookViewModel.File != null)
{
string uploads = Path.Combine(hosting.WebRootPath, "uploads");
fileName = Guid.NewGuid() + bookViewModel.File.FileName;
string fullPath = Path.Combine(uploads, fileName);
string oldfileName = _bookRepository.FindBook(book.Bookid).imageURL;
string fulloldpath = Path.Combine(uploads, oldfileName);
if(fullPath != fulloldpath)
{
System.IO.File.Delete(fulloldpath);
bookViewModel.File.CopyTo(new FileStream(fullPath, FileMode.Create));
bookViewModel.Book.imageURL = fileName;
}
}
if (!ModelState.IsValid)
{
bookViewModel.Authors = _authorRepository.GetAll();
return View(bookViewModel);
}
_bookRepository.Update(bookViewModel.Book);
return RedirectToAction("List");
}
这是FindBook
方法:
public Book FindBook(int id)
{
var book = _context.Books.Include(a => a.Author).SingleOrDefault(b => b.Bookid == id);
return book;
}
这是编辑方法:
public void Update(Book newBook)
{
_context.Update(newBook);
_context.SaveChanges();
}
这是我的剃须刀页面:
看看这个答案: