No, we can make it removable. I implemented this and it works definitely.
First you need to initialize these variables
var newImageObj = []; var ImageNo = 0;
Then write this code when changing file input
$("#exampleInputFileProduct").change(function () { var fileUpload = document.getElementById("exampleInputFileProduct"); //$("#mainImages").html(''); //$("#subImages").html(''); if (typeof (FileReader) != "undefined") { //Here Check File Extension var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.jpg|.jpeg|.gif|.png)$/; for (var i = 0; i < fileUpload.files.length; i++) { var j = 0; var file = fileUpload.files[i]; var NewFile = fileUpload.files[i]; //Here Check File Size 1MB = 1000000 Bytes if (file.size < 2048000) { if (regex.test(file.name.toLowerCase())) { var reader = new FileReader(); reader.onload = function (e) { if ($("#mainImages").find(".item").attr("id") == "FirstSlider") { $("#mainImages").html(''); $("#subImages").html(''); $("#subImages").append("<div class='item active'></div>"); } if ($("#mainImages").find(".item").hasClass("active")) { $("#mainImages").append("<div class='item " + ImageNo + "_CClass\'><i class='fa fa-times customIcon' onclick='RemoveImage(\"" + ImageNo + "_CClass\",\"" + fileUpload.files[j].name.toLowerCase() + "\")'></i><img class='CImage' src='" + e.target.result + "' alt='' /></div>"); } else { $("#mainImages").append("<div class='item active " + ImageNo + "_CClass'><i class='fa fa-times customIcon' onclick='RemoveImage(\"" + ImageNo + "_CClass\",\"" + fileUpload.files[j].name.toLowerCase() + "\")'></i><img class='CImage' src='" + e.target.result + "' alt='' /></div>"); } //if ($("#subImages").find(".item").length == 0) { // $("#subImages").append("<div class='item active'></div>"); //} else { if (($("#subImages").find(".item").find("div").length / 5) >= $("#subImages").find(".item").length) { $("#subImages").append("<div class='item'></div>"); } //} var append = 0; $.each($("#subImages").find(".item"), function (p, pelement) { if (append == 0) { if ($(pelement).find("div").length != 5) { var newID = $(pelement).find("div").length; newID = newID; $(pelement).append("<div onclick='LoadImage(\"" + ImageNo + "_CClass\")' data-slide-to='" + newID + "' class='thumb " + ImageNo + "_CClass'> <img src='" + e.target.result + "' alt=''></div>"); append = append + 1; } } }) j = j + 1; ImageNo = ImageNo + 1; } newImageObj.push(file); reader.readAsDataURL(file); } } } } else { alert("This browser does not support HTML5 FileReader."); } });
Then finally these 2 functions will help to do the rest
function LoadImage(objclass) { $("#mainImages").find(".item").removeClass("active"); $("#mainImages").find("." + objclass + "").addClass("active"); } function RemoveImage(objclass, ImageName) { $.each(newImageObj, function (e, element) { if ($(this)[0].name.toLowerCase().trim() == ImageName.trim()) { newImageObj.pop(this); } }); $("#mainImages").find("." + objclass + "").remove(); $("#subImages").find(".item").find("." + objclass + "").remove(); if ($("#mainImages").find(".item").length == 0) { $("#mainImages").append("<div class='item active'><i class='fa fa-times customIcon'></i><img class='CImage' src='/Content/img/DefaultProduct.gif' alt='' /></div>"); $("#subImages").append("<div class='item active'><div data-target='#carousel' data-slide-to='0' class='thumb'> <img src='/Content/img/DefaultProduct.gif' alt=''></div></div></div>"); } else { $("#mainImages").find(".item").removeClass("active"); $("#mainImages").find(".item:first-child").addClass("active"); $("#subImages").find(".item").removeClass("active"); $("#subImages").find(".item:first-child").addClass("active"); } }
Finally, when you submit your form, than take the files from the array
source share