ImageUrl пытается отобразить изображение за пределами корня проекта

StackOverflow https://stackoverflow.com/questions/2009568

  •  18-09-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top