In this blog you can get the complete source code of How To Upload And Retrieve Images using SQL Server Database In ASP.Net MVC Application.
Source Code:
Home Controller Code:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using UploadingAndRetrievingImages.Models;
namespace UploadingAndRetrievingImages.Controllers
{
public class HomeController : Controller
{
NewDBEntities db = new NewDBEntities();
// GET: Home
public ActionResult Index()
{
var data = db.students.ToList();
return View(data);
}
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(student s)
{
string fileName = Path.GetFileNameWithoutExtension(s.ImageFile.FileName);
string extension = Path.GetExtension(s.ImageFile.FileName);
HttpPostedFileBase postedFile = s.ImageFile;
int length = postedFile.ContentLength;
if(extension.ToLower() == ".jpg" || extension.ToLower() == ".png" || extension.ToLower() == ".jpeg")
{
if(length <= 1000000)
{
fileName = fileName + extension;
s.image_path = "~/images/" + fileName;
fileName = Path.Combine(Server.MapPath("~/images/"), fileName);
s.ImageFile.SaveAs(fileName);
db.students.Add(s);
int a = db.SaveChanges();
if (a > 0)
{
ViewBag.Message = "<script>alert('Record Inserted !!')</script>";
ModelState.Clear();
}
else
{
ViewBag.Message = "<script>alert('Record Not Inserted !!')</script>";
}
}
else
{
ViewBag.SizeMessage = "<script>alert('Size Should be of 1 MB !!')</script>";
}
}
else
{
ViewBag.ExtensionMessage = "<script>alert('Image Not Supported !!')</script>";
}
return View();
}
}
}
Source Code StudentDBModel Context Class
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace UploadingAndRetrievingImages.Models
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class NewDBEntities : DbContext
{
public NewDBEntities()
: base("name=NewDBEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<student> students { get; set; }
}
}
Source Code Of Create.cshtml File
@model UploadingAndRetrievingImages.Models.student
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@Html.Raw(ViewBag.Message)
@Html.Raw(ViewBag.SizeMessage)
@Html.Raw(ViewBag.ExtensionMessage)
@using (Html.BeginForm("Create","Home",FormMethod.Post, new {enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>student</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.standard, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.standard, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.standard, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.image_path, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
<input type="file" name="ImageFile" required/>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
Source Code Of Index.cshtml File
@model IEnumerable<UploadingAndRetrievingImages.Models.student>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.name)
</th>
<th>
@Html.DisplayNameFor(model => model.standard)
</th>
<th>
IMAGE
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.name)
</td>
<td>
@Html.DisplayFor(modelItem => item.standard)
</td>
<td>
<img src="@Url.Content(item.image_path)" height="100" width="100" />
</td>
</tr>
}
</table>
Source Code Of RouteConfig.cs File For Routes
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace UploadingAndRetrievingImages
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}
Click Below Link to Download Source Code Visual Studio Project Of This Blog
https://www.mediafire.com/file/snyyw46fidgdsox/UploadingAndRetrievingImages.rar/file
No responses yet