javascript - How to generate thumbnail and file name from input type file and insert them in multiple element? -
i manage generate thumbnail via script below
$('input#fileupload').on('change', function() { (var = 0; < this.files.length; i++) { var fr = new filereader(); var name = this.files.item(i).name; fr.onload = function(e) { $('#thumbs ul').append('<li><img src="' + e.target.result + '"><span>' + name[i] + '</span></li>'); }; fr.readasdataurl(this.files[i]); } });
but unable insert file name appended <li></li>
element
the issue because you're using files.item(i).name
invalid. instead need access files
array index, name
property.
also note when append variable in span
, can use name
directly, not name[i]
.
finally, you'll need use closure maintain scope of current file
when in onload
event handler. try this:
$('input#fileupload').on('change', function() { (var = 0; < this.files.length; i++) { (function(file) { var name = file.name; var fr = new filereader(); fr.onload = function(e) { $('#thumbs ul').append('<li><img src="' + e.target.result + '"><span>' + name + '</span></li>'); }; fr.readasdataurl(file); })(this.files[i]) } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="file" id="fileupload" multiple="true" /> <div id="thumbs"> <ul></ul> </div>
Comments
Post a Comment