ASP.NET MVC Удалить функцию внешнего пути ссылки дают ошибку - PullRequest
0 голосов
/ 04 июля 2018

Здравствуйте, я хочу удалить элемент базы данных. Когда я удаляю данные, если у них есть локальный путь, проблем не возникает.

Но

Если файл имеет внешнюю ссылку, он выдаст ошибку.

Получить ошибку:

System.Web.HttpException: '' https: /www.really-learn-english.com/image-files/letter-h.png 'не является действительным виртуальный путь. '

Проверьте пожалуйста: 1. База данных и фотография Scnerio! 2. Экран браузера!

Код

//Delete Images START
var getoldimages = db.DergiFotoes.Where(s => s.DergiID == getmkl.DergiID && 
s.Module == WebUtil.MAKALE_MODULE).ToList();
  if (getoldimages.Count > 0)
     {
  foreach (var item in getoldimages)
     {
     string fullPath = HttpContext.Current.Request.MapPath(item.Ad);
  if (System.IO.File.Exists(fullPath))
     {
        System.IO.File.Delete(fullPath);
     }
     }
        db.DergiFotoes.RemoveRange(getoldimages);
        db.SaveChanges();
     }
//Delete Images END
     getmkl.Sil = true;
     db.SaveChanges();
     return true;
  • ПРИМЕЧАНИЕ : Моя цель - не удалять данные с удаленного веб-сайта. я просто хотите удалить строку данных в таблице базы данных, даже если пользователь внешняя ссылка используется для данных

1 Ответ

0 голосов
/ 04 июля 2018

Вы не можете получить виртуальный путь для удаленного файла, используя HttpContext.Current.Request.MapPath. Этот метод используется для получения полного пути к файлам, хранящимся локально в вашем приложении ASP.NET.

Также вы не можете таким образом удалять файлы с удаленного сервера (при условии, что у вас нет прав записи на этот сервер).

Если вам нужно удалить файлы с веб-сайта, и он принадлежит вам, рассмотрите возможность реализации там RESTful API и используйте метод DELETE HTTP.

Обновление: если вам нужно очистить базу данных - просто удалите запись, которая указывает на удаленный файл, без какой-либо проверки. Если это локальный файл - используйте File. Удалите, как показано в листинге кода.

Надеюсь, это помогло.

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