【发布时间】:2018-05-22 15:29:03
【问题描述】:
在删除图像并保存另一个同名文件(即文件被替换)的情况下,我遇到了问题。如下图:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult _ReplaceGeneral(int ID, HttpPostedFileBase file)
{
var dbpath = query.FindImages(ID);
var path = Server.MapPath(dbpath.ImageURL);
System.IO.File.Delete(path);
file.SaveAs(path);
TempData["Message"] = "Image Successfully Replaced!";
return RedirectToAction("EditGallery");
}
在我的服务器中,文件已成功替换。但是,当我启动网站时,会显示上一张图片。
注意事项:
图像未保存在我的数据库中 - 它保存在我的服务器上,并且 URL 存储在数据库中。
我可以在服务器中实际看到文件被替换,所以我绝对肯定它正在被替换。
问题:即使在将图片 A 替换为图片 B 后,图片 A 如何以及为什么会显示在我的网站上?
我无法找到任何资源来说明此问题发生的原因和方式,因此如果重复,我深表歉意。
【问题讨论】:
-
你是如何在网站上使用该图片的?
-
@ChetanRanpariya 我有两种理解问题的方式 1. 图片存储在我服务器上的文件夹中。数据库存储这些照片的 URL。 2. 它在 CSS 中作为
background-image = "relative path"和<img src=@Url.Content()>标签使用 -
听起来浏览器正在缓存图像,由于名称没有改变,只是从缓存中加载它。
-
@Diado 我刚刚尝试清除所有浏览器数据,我可以确认这样做时图像确实发生了变化。我该如何解决这个问题?
-
如果图像保存成功,那么缓存可能是唯一的问题。保存图片后,如果在浏览器中按 Ctrl+F5 刷新页面,是否会显示新图片?
标签: c# asp.net-mvc entity-framework