Почему изображения не загружаются несмотря на правильный URL в IIS 7?

Это код для чтения полного пути с именем всех файлов (изображений) из папки внутри проекта

 @{ string[] imgfiles = Directory.GetFiles(@"D:\MVClearningProjects\Demo\Demo\Property_Data\Images\" + item.Property_ID, "*.*");}

этот код загружает первое изображение в файл вида cshtml

 <img src="@Url.Content(imgfiles[0])" alt="carousel bootstrap first" readonly style="width:200px; height:120px;"  />
//not allowed local resources when I run this project  usig ISS

2 ответа

Эта ошибка произошла из-за использования.physical пути вместо виртуального в следующем коде

@{ string[] imgfiles = Directory.GetFiles(@"D:\MVClearningProjects\Demo\Demo\Property_Data\Images\" + item.Property_ID, "*.*");}
 <img src="@Url.Content(imgfiles[0])" alt="carousel bootstrap first" readonly style="width:200px; height:120px;"  />

Я исправил это, заменив физический путь на виртуальный

 @{ string[] imgfiles = Directory.GetFiles(@"D:\MVClearningProjects\Demo\Demo\Property_Data\Images\" + item.Property_ID, "*.*");
            for (int i = 0; i < imgfiles.Length; i++)
            {//converting physical address into virtual
                imgfiles[i]= imgfiles[i].Replace(@"D:\MVClearningProjects\Demo\Demo", "~").Replace(@"\", "/");
            }
        }
<img src="@Url.Content(imgfiles[0])" alt="carousel bootstrap first" readonly style="width:200px; height:120px;"  />

Как сообщение об ошибке говорит вам, вы не можете это сделать. Из соображений безопасности большинство браузеров просто не позволяют использовать file://, Вам необходимо разместить его вместе с приложением и загрузить его с веб-сервера.
Взгляните на этот отличный ответ SO для объяснения и предлагаемого решения проблемы.

Другие вопросы по тегам