Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/64: Рейтинг темы: голосов - 64, средняя оценка - 4.77
5 / 5 / 2
Регистрация: 29.08.2011
Сообщений: 34

Отображение картинки с локального компьютера через представление

02.07.2012, 13:30. Показов 11841. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно есть изображение на компьютере, пишу код:
HTML5
1
2
3
4
5
6
7
8
9
10
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
    Index
</title></head>
<body>
    <div>
        <img src="file:\\\C:\Users\Алексей\Desktop\file.png">
    </div>
</body>
</html>
всё отлично открывается, работает как надо.

пишу такой же код во вьюшке в mvc-приложении, картинки на странице нет. в фаербаге код img серым цветом..

пробовал сделать путь к файлу без кирилицы, не помогло(
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.07.2012, 13:30
Ответы с готовыми решениями:

Открытие картинки через OpenFileDialog и ее отображение в PictureBox
Добрый вечер!!! У меня возник следующий вопрос: в общем, в моей программе необходимо, чтобы при нажатии кнопки &quot;Открыть&quot;...

Отображение картинки в компоненте Image через URL из Интернета
Всем привет. Народ может кто знает как отобразить картинку в компоненте Image через URL из Интернета

Отображение .rtf файла через JEditorPane. Не отображаются картинки
Доброго времени суток. В программе требуется отобразить содержимое файла формата rtf. Я решил сделать это с помощью компонента ...

8
82 / 82 / 14
Регистрация: 09.04.2012
Сообщений: 199
03.07.2012, 12:10
Это не коректно)
Картинка должна находится на сервере, в папке Content/
Если так уж надо пробуєм єто

C#
1
2
3
4
5
6
7
8
9
10
public ActionResult GetImg(string path)
        {
            if (!string.IsNullOrEmpty(path))
            {
                FileInfo file = new FileInfo(path);
                if (file.Exists)
                    return File(file.FullName, "text/plain", file.Name);
            }
            return Content("");
        }
и вызываэм
HTML5
1
<img src="@(Url.Action("GetImg", new { path = @"C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg" }))" alt="" />
Но тут дырка безопасности!!!!

можно еще так:

C#
1
2
3
4
5
6
7
8
9
10
11
public ActionResult GetImg(string fileName)
        {
            if (!string.IsNullOrEmpty(fileName))
            {
                string path = @"C:\Users\Public\Pictures\Sample Pictures\" + fileName;
                FileInfo file = new FileInfo(path);
                if (file.Exists)
                    return File(file.FullName, "text/plain", file.Name);
            }
            return Content("");
        }
и вызываэм
HTML5
1
<img src="@(Url.Action("GetImg", new { fileName = "Chrysanthemum.jpg" }))" alt="" />
0
19 / 34 / 11
Регистрация: 09.10.2010
Сообщений: 420
20.12.2013, 00:54
Grey_1, точно такая же проблема, уже руки опустились. Переместил в папку контент,
код
HTML5
1
<img src="@Url.Content(@item.Image)" alt ="Изображение для @item.Name" />
превращается в
HTML5
1
<img src="C:\WareHouse.Net\WareHouse.Net\Content\Data\Images\Categories\no-image.png" alt ="Изображение для Logitec 3D PRO" />
- нет картинки, не отображается.
Если прописать тупо путь или открыть отдельно ссылку
HTML5
1
file:///C:/WareHouse.Net/WareHouse.Net/Content/Data/Images/Categories/no-image.png
- открывается картинка!
Что это такое,как такое может быть?
0
7 / 7 / 2
Регистрация: 27.11.2013
Сообщений: 24
20.12.2013, 01:01
Спорим вот так вот работает
HTML5
1
<img src="/Content/Data/Images/Categories/no-image.png" alt ="Изображение для Logitec 3D PRO" />
0
19 / 34 / 11
Регистрация: 09.10.2010
Сообщений: 420
20.12.2013, 01:18
Dedice, чего тут спорить:
Цитата Сообщение от ai-zer Посмотреть сообщение
Если прописать тупо путь или открыть отдельно ссылку Код HTML51
file:///C:/WareHouse.Net/WareHouse.Net/Content/Data/Images/Categories/no-image.png - открывается картинка!
у меня список объектов, каждому путь не пропишешь.

IIS выдал следующее:
Наиболее вероятные причины:
Средства фильтрации запросов настроены для работы с веб-сервером, они содержат раздел hiddenSegments, позволяющий администратору сервера блокировать доступ к отдельным каталогам.

Что можно предпринять:
Проверьте настройки configuration/system.webServer/security/requestFiltering/hiddenSegments в файлах applicationhost.config или web.config.
вот только в web.config нет никаких security настроек
0
7 / 7 / 2
Регистрация: 27.11.2013
Сообщений: 24
20.12.2013, 01:25
Цитата Сообщение от ai-zer Посмотреть сообщение
у меня список объектов, каждому путь не пропишешь.
ну я тривиально ответил, Вы могли бы и подумать по лучше, что за список объектов у Вас? какие поля у объекта?

Добавлено через 2 минуты
вот еще подсказка HttpContext.Current.Server.MapPath("~/Upload/TmpImgs");
1
19 / 34 / 11
Регистрация: 09.10.2010
Сообщений: 420
20.12.2013, 01:54
Dedice, да, опять всё так и сделано)
C#
1
2
3
4
5
6
7
8
9
10
11
  private string image;
        [Display(Name = "Изображение товара")]
        public virtual string Image {
            get
            {
                if (image == string.Empty || image == null)
                    return HttpContext.Current.Server.MapPath(@"~/Content/Data/Images/Categories/no-image.png");
                return image;
            }
            set { image = value; }
        }
Добавлено через 6 минут
опа, получилось. В общем, наоборот, надо было убрать Server.MapPath !
Вот так работает:
C#
1
                    return (@"~/Content/Data/Images/Categories/no-image.png");
но почему - я не знаю, путь выдается такой же, как и раньше.
0
7 / 7 / 2
Регистрация: 27.11.2013
Сообщений: 24
20.12.2013, 02:04
будет лучше написать хелпер

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static class ImageHtmlHelpers
    {
        public static string ImageUrlFor(this HtmlHelper helper, string contentUrl)
        {
            UrlHelper urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
 
            if (!File.Exists(helper.ViewContext.HttpContext.Server.MapPath(contentUrl)))
            {
                return urlHelper.Content("~/Content/Data/Images/Categories/no-image.png");
            }
            else
            {
                return urlHelper.Content(contentUrl);
            }
        }
    }
1
Эксперт .NET
 Аватар для Wolfdp
3785 / 1762 / 371
Регистрация: 15.06.2012
Сообщений: 6,535
Записей в блоге: 3
24.12.2013, 14:41
Вы блин издеваетесь?! Кто вообще когда-либо на веб страничке указывал ссылки на локальные ресурсы машины?!
Файл изображения должен находится в виртуальном каталоге сайта. На пальцах: в той же дериктории, что и ваш проект. (В противном случае все это будет видно исключительно у вас на компьютере) Если уж очень нужно грузить из вне, то придется: а - копировать во временную дерикторию; b - приводить к string64.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.12.2013, 14:41
Помогаю со студенческими работами здесь

Отвязка от локального компьютера
Господа подскажите что сделать чтоб база данных в проекте не была привязана к локальному компьютеру. Ну то есть проект мог переместить на...

Обновление KIS с локального компьютера
Здравствуйте форумчане. Подскажите пожалуйста каким образом можно реализовать такую штуковину. Есть 2 компьютера, на обоих стоит KIS,...

Подключение к SqLite БД с локального компьютера
Здравствуйте! Есть программа которая работает с БД Sqlite. Имя файла БД file.sdf. База установлена например на компьютере у которого ip...

Доступ к внешнему IP с локального компьютера
Здравствуйте Имеется сайт на который можно зайти через локальный Ip адрес, но по внешнему Ip адресу на сайт не пускает. Как можно...

PCI устройства локального компьютера
Как получить список pci устройств своего компьютера ? Сгодится любой способ.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru