#Expected Output
#Controller Code(TestController.cs)
#Model (ProductViewModel.cs)
# View (Index.cshtml)
#Controller Code(TestController.cs)
using MVCTutorial.Models; using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; using System.Net; using System.Threading; using System.Web; using System.Web.Mvc; namespace MVCTutorial.Controllers { public class TestController : Controller { public ActionResult Index() { return View(); } public ActionResult SideMenu() { return PartialView("SideMenu"); } public JsonResult ImageUpload(ProductViewModel model) { MVCTutorialEntities db = new MVCTutorialEntities(); int imageId = 0; var file = model.ImageFile; byte[] imagebyte = null; if (file != null) { file.SaveAs(Server.MapPath("/UploadedImage/" + file.FileName)); BinaryReader reader = new BinaryReader(file.InputStream); imagebyte = reader.ReadBytes(file.ContentLength); ImageStore img = new ImageStore(); img.ImageName = file.FileName; img.ImageByte = imagebyte; img.ImagePath = "/UploadedImage/" + file.FileName; img.IsDeleted = false; db.ImageStores.Add(img); db.SaveChanges(); imageId = img.ImageId; } if (model.ImageUrl != null) { imagebyte = DownloadImage(model.ImageUrl); ImageStore img = new ImageStore(); img.ImageName = "Abc"; //file.FileName; img.ImageByte = imagebyte; img.ImagePath = model.ImageUrl; img.IsDeleted = false; db.ImageStores.Add(img); db.SaveChanges(); imageId = img.ImageId; } return Json(imageId, JsonRequestBehavior.AllowGet); } public ActionResult ImageRetrieve(int imgID) { MVCTutorialEntities db = new MVCTutorialEntities(); var img = db.ImageStores.SingleOrDefault(x => x.ImageId == imgID); return File(img.ImageByte, "image/jpg"); } public byte[] DownloadImage(string Url) { var webclient = new WebClient(); byte[] imagebytes = webclient.DownloadData(Url); return imagebytes; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVCTutorial.Models { public class ProductViewModel { public string ProductName { get; set; } public string Title { get; set; } public string Description { get; set; } public Nullable<int> Price { get; set; } public Nullable<int> ImageId { get; set; } public HttpPostedFileWrapper ImageFile { get; set; } public string ImageUrl { get; set; } } }
@model MVCTutorial.Models.ProductViewModel @{ ViewBag.Title = "Index"; // Layout = null; } <div class="panel panel-body" style="min-height:256px"> @*<div class="col-md-3"> @{ Html.RenderAction("SideMenu", "Test");} </div>*@ <div class="col-md-9"> <div class="col-md-4"> <div class="btn btn-primary"> <input type="file" id="imageBrowes" /> </div> <hr /> <div id="imgPreview" class="thumbnail" style="display:none"> <img class="img-responsive" id="targetImg" /> <div class="caption"> <a href="#" onclick="ClearPreview()"><i class="glyphicon glyphicon-trash"></i></a> <span id="description"></span> </div> <a href="#" class="btn btn-default" onclick="Uploadimage()">Upload</a> </div> <input type="text" class="form-control" id="url" /> <a href="#" class="btn btn-primary btn-block" onclick="Uploadimage()"> Save Image by URL</a> </div> <div class="col-md-2 thumbnail" id="uploadedImage" > <img src="~/Content/loading.gif" height="20" width="20" style="display:none" id="loader"/> </div> </div> </div> <script src="~/Scripts/jquery-1.10.2.min.js"></script> <script> $(document).ready(function () { $("#imageBrowes").change(function () { var File = this.files; if (File && File[0]) { ReadImage(File[0]); } }) }) var ReadImage = function (file) { var reader = new FileReader; var image = new Image; reader.readAsDataURL(file); reader.onload = function (_file) { image.src = _file.target.result; image.onload = function () { var height = this.height; var width = this.width; var type = file.type; var size = ~~(file.size / 1024) + "KB"; $("#targetImg").attr('src', _file.target.result); $("#description").text("Size:" + size + ", " + height + "X " + width + ", " + type + ""); $("#imgPreview").show(); } } } var ClearPreview = function () { $("#imageBrowes").val(''); $("#description").text(''); $("#imgPreview").hide(); } var Uploadimage = function () { $("#loader").show(); var file = $("#imageBrowes").get(0).files; var url = $("#url").val(); var data = new FormData; data.append("ImageFile", file[0]); data.append("ProductName", "SamsungA8"); data.append("ImageUrl", url); $.ajax({ type: "Post", url: "/Test/ImageUpload", data: data, contentType: false, processData: false, success: function (imgID) { $("#loader").hide(); ClearPreview(); $("#uploadedImage").append('<img src="/Test/ImageRetrieve?imgID=' + imgID + '" class="img-responsive thumbnail"/>'); //$("#uploadedImage").append('<img src="/UploadedImage/' + response + '" class="img-responsive thumbnail"/>'); } }) // } </script>
# Layout (_Layout.cshtml)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title - My ASP.NET Application</title> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") </head> <body> <nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container-fluid"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/Test/Index"> <img alt="Brand" src="~/Content/Images/logo.png" height="20" width="20"> </a> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav"> <li><a href="#"><span class="glyphicon glyphicon-home"></span></a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Services <span class="caret"></span></a> <ul class="dropdown-menu" role="menu" id="myTab"> <li role="presentation"><a href="#music" aria-controls="music" role="tab" data-toggle="tab"><span class="glyphicon glyphicon-music"> </span> Music & Dance</a></li> <li class="divider"></li> <li role="presentation"><a href="#training" aria-controls="training" role="tab" data-toggle="tab"><span class="glyphicon glyphicon-book"> </span> Summar Training</a></li> <li class="divider"></li> <li role="presentation"><a href="#website" aria-controls="website" role="tab" data-toggle="tab"><span class="glyphicon glyphicon-cloud"> </span> Website Building</a></li> </ul> </li> <li><a href="#">About Us</a></li> <li><a href="#">Career</a></li> </ul> <form class="navbar-form navbar-left" role="search"> <div class="form-group"> <input type="text" class="form-control" placeholder="Search"> </div> <button type="submit" class="btn btn-default">Submit</button> </form> @if (Session["UserId"] != null) { <ul class="nav navbar-nav navbar-right"> <li><a href="#">Welcome :@Session["UserName"] </a></li> <li><a href="/Test/Logout">Logout</a></li> </ul> } else { <ul class="nav navbar-nav navbar-right"> <li><a href="/Test/Login">Login</a></li> <li><a href="/Test/Registration">Register</a></li> </ul> } } </div> </div> </nav> <div class="panel-body" style="min-height:450px"> @RenderBody() </div> <div class="well" style="background-color:#000000;color:wheat;margin-bottom:0px"> <div class="col-lg-4" style="margin-left:20px"> <h3><span class="glyphicon glyphicon-map-marker"></span> Address</h3> <ul class="list-group list-unstyled"> <li>Technotips Ltd.</li> <li>xyz Industrial Area</li> <li>Phase-2,New Delhi-52</li> </ul> </div> <div class="col-lg-4"> <h3><span class="glyphicon glyphicon-cog"></span> Our Services</h3> <ul class="list-group list-unstyled"> <li><span class="glyphicon glyphicon-music"></span> <a href="#">Musical & Dance Traning</a> </li> <li><span class="glyphicon glyphicon-book"></span> <a href="#">Training in Asp.Net,Java,android etc.</a></li> <li><span class="glyphicon glyphicon-globe"></span> <a href="#">Web designing -corporate & Domestic</a> </li> </ul> </div> <div class="col-lg-3"> <h3><span class="glyphicon glyphicon-briefcase"></span> Career</h3> <ul class="list-group list-unstyled"> <li><span class="glyphicon glyphicon-music"></span> <a href="#">Musical & Dance</a> </li> <li><span class="glyphicon glyphicon-book"></span> <a href="#">Summar training</a></li> <li><span class="glyphicon glyphicon-globe"></span> <a href="#">Website Designing</a></li> </ul> </div> <div style="clear:both"></div> </div> @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") <script src="~/Scripts/jquery.validate.js"></script> <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script> @RenderSection("scripts", required: false) </body> </html>
USE [MVCTutorial] GO /****** Object: Table [dbo].[ImageStore] Script Date: 12-03-2017 00:16:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[ImageStore]( [ImageId] [int] IDENTITY(1,1) NOT NULL, [ImageName] [nvarchar](1000) NULL, [ImageByte] [image] NULL, [ImagePath] [nvarchar](1000) NULL, [IsDeleted] [bit] NULL, CONSTRAINT [PK_ImageStore] PRIMARY KEY CLUSTERED ( [ImageId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO /****** Object: Table [dbo].[Product] Script Date: 12-03-2017 00:16:19 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Product]( [ProductId] [int] IDENTITY(1,1) NOT NULL, [Title] [nvarchar](200) NULL, [Description] [nvarchar](1000) NULL, [Price] [int] NULL, [ImageId] [int] NULL, CONSTRAINT [PK_Product] PRIMARY KEY CLUSTERED ( [ProductId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[Product] WITH CHECK ADD CONSTRAINT [FK_Product_ImageStore] FOREIGN KEY([ImageId]) REFERENCES [dbo].[ImageStore] ([ImageId]) GO ALTER TABLE [dbo].[Product] CHECK CONSTRAINT [FK_Product_ImageStore] GO
All Code Factory
- Part 11- Insert data into database
- Part 12- Server side and clientside validation
- Part 13- Insert data into multiple tables
- Part 14- Insert data into database using JQuery
- Part 15- How to create Bootstrap Popup
- Part 16- Delete operation in Asp.net MVC
- Part 17- What is Partial View in Asp.net MVC
- Part 18- How to call Partial View using JQuery
- Part 19- Difference between Html.Partial() and Html.RenderPartial()
- Part 20- AddEdit Record using Partial View
- Part 21- Layout View in Asp.net MVC
- Part 22- Style.Render and Script.Render
- Part 23 - RenderBody, RenderSection and RenderPage.
- Part 24- Divide Page into several component using Bootstrap
- Part 25- Refresh Entity framework after any modification in database table
- Part 26- Set foreign key relationnship in database tables
- Part 27- Create Rgistration Page
- Part 28- Create Login Page
- Part 29- Client Side Validation using JQuery
- Part 30- How to return multiple Model to a View (Interview)
- Part 31- How to create Dynamic Menu using Partial View
- Part 32- Preview Image Before Uploading
- Part 33- Upload and Display Image using JQuery
- Part 34-Upload Image to SQL Server and Display
- Part 35- Download Image from URL and Upload to SQL Server
- Part 36- Cascading DropdownList
- Part 37- Implement Search Functionality
- Part 38- Attribute Routing in MVC
- Part 39- How to display multiple checkbox checked data
- Part 40- How to send multiple checkbox checked value to Server
- Part 41- How to create responsive sortable Image Gallery
- Part 42 - How to implement JQuery Autocomplete Textbox
- Part 43 - How to send Emails in Asp.net MVC
- Part 44 - Integrate JQuery DataTables plugin
- Part 45 - Display record from database using JQuery Datatable
- Part 46- Add Edit Record using JQuery DataTable
- Part 47 - JQuery DataTables Server -side Processing
- Part 48 - JQuery server side processing -Search functionality
- Part 49 - Pagination using Skip and Take method
- Part 50 - Refresh DataTable After Performing Any Action
- Part 51 - Send OTP ( One Time Password ) to any mobile device
- Part 52 - How to use AutoMapper in Asp.net MVC
- Part 53 - How to use AutoMapper ForMember Method
- Part 54 - Repository Pattern - 1 - Adding Business Layer
- Part 55 - Repository Pattern - 2 - Adding Domain Layer
- Part 56 - Repository Pattern - 3 - Dependency Injection
- Part 57- Repository Pattern- 4 - Adding Data Access Layer
- Part 58 - Repository Pattern - 5 - Setting Up Generic Repository
- Part 59 - Display Record using repository pattern
- Part 60 - Add Edit Record using Repository Pattern
No comments:
Post a Comment