js 批量获取文件信息
忽略大小为10m以上的文件
by 亮 薛
HTML
<form name="uploadForm" action="" autocomplete="off">
<label></label>
<input type="file" name="file" multiple>
<br>
<div id="img-list">
</div>
<div class="img-helper"></div>
</form>
CSS
.img-helper {
display: none;
}
JavaScript
var $file = document.querySelector('input[name="file"]');
var $uploadBtn = document.querySelector('button[type="button"]');
var $imgHelper = document.querySelector('.img-helper');
var $imgList = document.getElementById('img-list');
$file.addEventListener('change', function(event) {
var files = event.target.files; //获取文件列表
var html = ['<label>名称:{{name}}</label><br>',
'<label>大小:{{filesize}}</label><br>',
'<label>类型:{{type}}</label><br>',
'<label>尺寸:{{size}}</label><br><hr>'
].join('');
if (files.length) {
for (var file of files) {
if (file.size > (1024 * 1024 * 10)) {
continue; // 忽略大小为10m以上的文件
}
(function() {
var reader = new FileReader();
var f = file;
reader.onload = function(evt) { //When the read has successfully completed
if (!f.type || !f.type.startsWith('image/')) {
return;
}
var _html = html.replace('{{name}}', f.name).replace('{{filesize}}', f.size / 1024 + 'KB').replace('{{type}}', f.type);
var result = evt.target.result;
var $img = document.createElement('img');
$img.src = result;
$imgHelper.innerHTML = '';
$imgHelper.appendChild($img);
_html = _html.replace('{{size}}', $img.width + 'x' + $img.height);
var originalHTML = $imgList.innerHTML;
$imgList.innerHTML = originalHTML + _html;
}
reader.readAsDataURL(file);
})();
}
$imgHelper.innerHTML = '';
}
});