Reputation: 123
I want user select multi files and show all images selected as preview in client side. This is my html code:
<div class="row">
<div class="col-md-12">
<span class="btn btn-primary btn-file">
Browse <input type="file" name="images" multiple onchange="readURL(this);"/>
</span>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="col-md-12" id="anhdachon">
</div>
</div>
</div>
my JavaScript code:
<script>
function readURL(input) {
if (input.files) {
var gallery = document.getElementById("#anhdachon");
var reader = new FileReader();
reader.onload = function(e) {
for (var item in input.files) {
var hinh = document.createElement("img");
hinh.attr('src', e.target.result).width(220).height(200);
reader.readAsDataURL(item);
gallery.appendChild(hinh);
}
};
}
}
</script>
but it does not working at all, what should I do to solve this problem?
Upvotes: 1
Views: 60
Reputation: 115222
Remove #
from getElementById()
and do something like this
function readURL(input) {
if (input.files) {
var gallery = document.getElementById("anhdachon");
var imageType = /^image\//;
for (var i = 0; i < input.files.length; i++) {
if (!imageType.test(input.files[i].type)) {
continue;
}
var hinh = document.createElement("img");
hinh.src = window.URL.createObjectURL(input.files[i])
hinh.width = 220;
hinh.height = 200;
gallery.appendChild(hinh);
}
}
}
<div class="row">
<div class="col-md-12">
<span class="btn btn-primary btn-file">
Browse <input type="file" name="images" multiple onchange="readURL(this);"/>
</span>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="col-md-12" id="anhdachon">
</div>
</div>
</div>
Upvotes: 1