ASP.Net MVC - Путь к серверу Img Src

Visual Studio 2012 - ASP.net - MVC 4

У меня проблемы с отображением изображения с пути сервера, который хранится в базе данных.

Я использую HttpPostedFileBase для получения файла, загруженного пользователем:

using (var uow = _db.CreateUnitOfWork())
            {
                if (imageUpload != null && imageUpload.ContentLength > 0)
                {
                    var fileName = Path.GetRandomFileName() + Path.GetExtension(imageUpload.FileName);
                    var path = Path.Combine(System.Web.Hosting.HostingEnvironment.MapPath("~/Uploads"), fileName);
                    imageUpload.SaveAs(path);
                    achievement.ImageLoc = path;
                }

                uow.Add(achievement);
                Save(uow);
                return true;
            }

Это сохранит абсолютный путь загруженного файла в базу данных и сохранит файл на сервере. Когда я пытаюсь найти этот путь для отображения файла изображения в представлении, все, что я получаю, это пустой квадрат, как будто файл не найден (about: blank при щелчке правой кнопкой мыши -> копировать ссылку на изображение). Я знаю, что путь правильный, потому что я использую его в другом представлении, чтобы позволить пользователям загружать файлы, который работает правильно. Также я разрешаю пользователю редактировать файл, который успешно удаляет старый и загружает новый. Единственная проблема, с которой я столкнулся - это отображение изображения в виде.

Я пытался:

<img src="@Html.Encode(Model.ImageLoc)">
 Jpin09 окт. 2012 г., 18:27
img src = "\\ PDC2 \ сайтов \ т \ <site.co.uk>\ public_html \ Uploads \ tccxdfu0.nde.jpg "/>
 Smudge20209 окт. 2012 г., 18:02
Вы проверили HTML выход? (т. е. просмотр исходного кода на странице, которую он отображает). Быстрое сканирование по ссылке, размещенной вsrc тег, вероятно, даст вам лучшее представление о том, чтоS не так. В число проверяемых элементов входит двойной код пути (т.е. вы кодируете его один раз по пути в базу данных, а затем снова при выходе) или пропускает "/" ближе к концу пути.

Ответы на вопрос(2)

Посмотрите на использование

http://msdn.microsoft.com/en-us/library/system.web.mvc.mvchtmlstring%28VS.100%29.aspx Я подозреваю этокодируется, следовательно, не выводится так, как вы ожидаете.

Решение Вопроса

Вы сохранили абсолютный путь к изображению в вашей базе данных, но вам нужно сослаться на него с относительным путем:

<img src="@Url.Content(" ~="" uploads="" "="" +="" system.io.path.getfilename(model.imageloc))"="" alt="">

Полученный HTML должен выглядеть так:

<img src="/Uploads/tccxdfu0.nde.jpg" alt="">

и не:

<img src="\\PDC2\sites\t\site.co.uk\public_html\Uploads\tccxdfu0.nde.jpg" alt="">

потому что клиент не может получить доступ к таким папкам с сервера.

 Jpin09 окт. 2012 г., 18:47
Спасибо большое, сработало! :)
 JoshYates198025 июл. 2014 г., 22:38
Saweet! отлично работает с Video.js. +1

Ваш ответ на вопрос