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