Файл A заменен на сервере с B, но файл A отображается - PullRequest
0 голосов
/ 22 мая 2018

Я столкнулся с проблемой в ситуации, когда изображение удаляется, и вместо него сохраняется другой файл с тем же именем (т. Е. Файл заменяется).Как показано ниже:

[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?

Мне не удалось найти никаких ресурсов, в которых бы разъяснялось, почему и как возникает эта проблема, поэтому я прошу прощения, если этодублировать.

1 Ответ

0 голосов
/ 22 мая 2018

Это звучит как проблема с кэшированием в браузере.Если URL-адрес изображения не изменяется, браузер будет использовать кэшированную версию и не будет извлекать изображение с сервера.

Это можно обойти, получив последние измененные дату / время файлов изображений, преобразовав их вномер и добавьте его к URL-адресу изображения в виде строки запроса (например, & t = XXXXX).Таким образом, при изменении файла изображения URL-адрес также изменяется.Браузер загрузит новое изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...