Visual Studio 2012 - ASP.net - MVC 4
I am having troubles displaying an image from a server path which is stored in a database.
I am using HttpPostedFileBase to retrieve the file the user has uploaded:
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;
}
This will save the absolute path of the uploaded file into the database and save the file onto the server. When I try to retrieve this path to display an image file in a view all I get is a blank square like the file is not being found (about:blank when right click -> copy image url). I know the path is correct because I am using it in a different view to allow users to download files, which is working correctly. Also I am allowing the user to edit the file which successfully deletes the old and uploads a new one. The only problem I am having is displaying an image in a view.
I have tried:
<img src="@Html.Encode(Model.ImageLoc)" />
<img [email protected](Model.ImageLoc)" />
Would anyone be able to suggest anything?
srctag will probably give you a better idea of what's wrong. Things to check for include the path being double encoded (i.e. you encode it once on the way to the database, and again on the way out) or missing a "/" towards the end of the path.