ImageUrl пытается отобразить изображение вне корня проекта - PullRequest
1 голос
/ 06 января 2010

Я работаю с двумя разными веб-сайтами в asp.net. В первом проекте я загружаю некоторые изображения в определенную папку в корне проекта и сохраняю только имя файла в базе данных, теперь я пытаюсь отобразить эти изображения на какой-то странице второго проекта. Я знаю имя файла из базы данных и изображение папка как абсолютная ошибка, но я не смог отобразить изображение, даже подумал, что при поиске в firebug изображение src корректно src="D:/MyFolder/image.jpg" изображение не отображается, возможно потому, что оно не указывает на правильный каталог. Я также попытался использовать Server.MapPath, а затем свое местоположение D, но все еще безуспешно.

Я уверен, что кто-то сталкивался с такой же ситуацией раньше и действительно надеялся получить подсказку, чтобы справиться с этим. Заранее спасибо

Ответы [ 4 ]

2 голосов
/ 06 января 2010

Я нашел свое решение, странно, но я не поймал его раньше.Доступ к загруженным изображениям в рамках проекта всегда можно получить по URL-адресу проекта http://www.yourwebsite.com/images/photo.png. Теперь во втором проекте вы можете использовать ссылку на изображения, используя этот URL-адрес и объединяя имя файла, которое я храню в базе данных.Я думаю, что это лучшее решение, и без изменения безопасности доступа к коду, я думаю, могут возникнуть другие проблемы.В любом случае, ребята, спасибо.

1 голос
/ 15 мая 2012

Если вы хотите отобразить изображение, которого нет в вашем проекте (я имею в виду, что оно присутствует в каком-либо другом проекте или на другом диске), просто создайте виртуальный каталог в IIS

  1. Перейти к «Выполнить», введите inetmgr
  2. Щелкните правой кнопкой мыши по вашему проекту и добавьте виртуальный каталог
  3. Укажите псевдоним и путь, чтобы он работал как папка в вашем проекте
1 голос
/ 06 января 2010

Вы можете "ссылаться" только на файлы, которые существуют относительно того же проекта или размещены на другом сайте через абсолютный URL.

Если вы хотите обслуживать файлы вне приложения / веб-сайта (на диске или в базе данных), вам необходимо создать механизм, который получает файл и двоичный файл, записывает его в браузер, устанавливает тип MIME и т. Д. Это лучше всего. сделано с использованием HttpHandler.

1 голос
/ 06 января 2010

Я не думаю, что вы можете обслуживать файлы вне пути вашего приложения по умолчанию. Это называется безопасность доступа к коду. Вы можете прочитать об этом здесь:
http://msdn.microsoft.com/en-us/library/930b76w0.aspx

Вы можете исправить это, изменив уровень доверия на Высокий в вашем web.config:
http://msdn.microsoft.com/en-us/library/tkscy493.aspx

Я бы не рекомендовал делать это для любого сайта, доступного извне. Фактически, в зависимости от того, как / где вы размещаете свое приложение, этот параметр может быть ограничен.

...