Эта часть вашего полного сгенерированного пути:
C:\Users\asus\Desktop\Praca%20IT\Programowanie\Projekty\DluzynaSzkola\ASP.NET%20Core%20-%20ostatni\Dluzyna_Szkola_2\BasicConfig\wwwroot/uploaded/bus/1.jpg
из-за ViewBag.fileDirectory
в этой строке кода ->
<a class="down" href="Autobus/DeleteFile?file=@(ViewBag.fileDirectory + file)"><dir>@file<span>;</span></dir></a>
Вы используетеваш реальный путь к файлу на вашем сервере (локальном компьютере) для вашего просмотра, и это может создать много проблем.Вы должны определить что-то вроде идентификатора для каждого файла, а затем отправить идентификатор этого файла в метод действия вашего контроллера, а затем понять, что этот идентификатор предназначен для этого файла, и, наконец, удалить этот файл.
Таким образом, вы должны изменить свой кодкак это:
В этой ситуации имя вашего файла - id.Хотя это не стандартный способ.Мы делаем это только для целей обучения.
Измените эту строку своего кода ->
<a class="down" href="Autobus/DeleteFile?file=@(ViewBag.fileDirectory + file)"><dir>@file<span>;</span></dir></a>
С помощью этой строки ->
@Html.ActionLink( $"Delete {file}", "DeleteFile", "Autobus", new { file = file}, new { })
Теперь, когда вы нажимаете на каждую из сгенерированных ссылок в вашем браузере, ваш метод действия DeleteFile
получит имя файла.и затем, если вы знаете, к какому каталогу относятся ваши файлы, вы можете удалить его в своем методе действия DeleteFile
с одной строкой кода, подобной этой
System.IO.File.Delete(fileDirectory+file);
Примечание: Если ваш fileDirectory
путь похож на C:\Users\asus\Desktop\Praca%20IT\Programowanie\Projekty\DluzynaSzkola\ASP.NET%20Core%20-%20ostatni\Dluzyna_Szkola_2\BasicConfig\wwwroot/uploaded/bus/1.jpg
, то ваш метод действия (DeleteFile
) выдаст исключение.Поэтому вы должны изменить свой код следующим образом:
string fullPath = Request.MapPath("~/uploaded/" + file);
if (System.IO.File.Exists(fullPath))
{
System.IO.File.Delete(fullPath);
}
В этом коде ~
укажите корневой каталог вашего приложения MVC asp.net, а папка uploaded
- это папка, которую вы используете для поискаваши файлы (вы можете изменить его в папку с файлами).
Если вы измените свой код таким образом, у вас могут возникнуть небольшие проблемы, но концепция верна, и с небольшими изменениями вы можете делать то, что хотите.
Надеюсь, этот ответ поможет вам ....