Jquery 上载带有预览的图像

Jquery 上载带有预览的图像,jquery,html,image,asp.net-mvc-4,razor,Jquery,Html,Image,Asp.net Mvc 4,Razor,我有一个图像上传面板。我可以上传多张图片。当我选择一个图像时,它会显示在其他面板(图像预览)中。但我的问题是,为一个图像工作,而不是为多个图像工作。这是我的密码。 这是上传的表格 @using (Html.BeginForm("Upload", "ImageAdvertisement", FormMethod.Post, new { enctype = "multipart/form-data" })){ @Html.AntiForgeryToken(); <h4>

我有一个图像上传面板。我可以上传多张图片。当我选择一个图像时,它会显示在其他面板(图像预览)中。但我的问题是,为一个图像工作,而不是为多个图像工作。这是我的密码。 这是上传的表格

@using (Html.BeginForm("Upload", "ImageAdvertisement", FormMethod.Post, new { enctype = "multipart/form-data" })){
    @Html.AntiForgeryToken();

    <h4><label><b><i>@GoOnWork.Resource.ChooseImage</i></b></label></h4>
    <input type="file" multiple="multiple" class="jfilestyle" name="file" id="file" style="width: 100%;margin: 0 auto;" data-buttontext="><span class='glyphicon glyphicon-folder-open'></span> Choose File"; />
    <input type="hidden" value="@Model" name="advertisementId" />
    <br>
    <br>
    <button type="submit" class="btn btn-default" style="width:250px;"><span class="glyphicon glyphicon-upload"></span> @GoOnWork.Resource.Upload</button>
}
@使用(Html.BeginForm(“上传”、“图像广告”、FormMethod.Post、新的{enctype=“multipart/form data”})){
@Html.AntiForgeryToken();
@GoOnWork.Resource.ChooseImage


@GoOnWork.Resource.Upload }
这是我上传图像前显示图像的面板

<div class="col-md-7 hidden" id="showImg">
    <div class="panel panel-default">
        <div class="panel-heading text-center"><b><i>@GoOnWork.Resource.ImagePreview</i></b></div>
        <div class="panel-body text-center">
            <img id="myImg" src="#" alt="your image" class="img-rounded" width="400" height="360" border="0" />
        </div>
    </div>
</div>

@GoOnWork.Resource.ImagePreview
这是我的JQuery部分代码

<script type="text/javascript">
    $(function () {
        $(":file").change(function () {
            if (this.files && this.files[0]) {
                var reader = new FileReader();
                reader.onload = imageIsLoaded;
                reader.readAsDataURL(this.files[0]);
            }
        });
    });

    function imageIsLoaded(e) {
        $('#myImg').attr('src', e.target.result);
        $('#showImg').removeClass("hidden");
    };
</script>

$(函数(){
$(“:文件”).change(函数(){
if(this.files&&this.files[0]){
var reader=new FileReader();
reader.onload=imagesisload;
reader.readAsDataURL(this.files[0]);
}
});
});
函数imageIsLoaded(e){
$('myImg').attr('src',e.target.result);
$('#showImg').removeClass(“隐藏”);
};

在javascript中,您总是引用ID为“myImg”的相同img标记。除了id应该是唯一的这一事实之外,这意味着您总是选择相同的元素(即使有多个元素具有相同的id)并更改其源属性


重写HTML和JS,使每个添加的图像在图像上都有自己的id。或者你可以去重写你的
imageIsLoaded
函数,让它为你的javascript中的每个图像生成一个新的HTML块,你总是引用同一个ID为“myImg”的img标记。除了id应该是唯一的这一事实之外,这意味着您总是选择相同的元素(即使有多个元素具有相同的id)并更改其源属性


重写HTML和JS,使每个添加的图像在图像上都有自己的id。或者你可以去重写你的
imageIsLoaded
函数,让它为每个图像生成一个新的HTML块

你可以像下面那样预览多个图像。迭代文件上传的每个图像,创建一个
”;
}
reader.readAsDataURL(文件);
}

您可以像下面这样预览多个图像。迭代文件上传的每个图像,创建一个
”;
}
reader.readAsDataURL(文件);
}


谢谢您的快速回答!但如果我可以问你,我如何才能使他们在滑块与下一个和上一个按钮?这是一个完全不同的问题。为此提出新问题@谢谢你的快速回答!但如果我可以问你,我如何才能使他们在滑块与下一个和上一个按钮?这是一个完全不同的问题。为此提出新问题@迪米特尔加尼切夫