通过HTML5的File API读取文件内容 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| var fileInput = document.getElementById('test-image-file'), info = document.getElementById('test-file-info'), preview = document.getElementById('test-image-preview');
fileInput.addEventListener('change', function () { preview.style.backgroundImage = ''; if (!fileInput.value) { info.innerHTML = '没有选择文件'; return; } var file = fileInput.files[0]; info.innerHTML = '文件: ' + file.name + '<br>' + '大小: ' + file.size + '<br>' + '修改: ' + file.lastModifiedDate; if (file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') { alert('不是有效的图片文件!'); return; } var reader = new FileReader(); reader.onload = function(e) { var data = e.target.result; preview.style.backgroundImage = 'url(' + data + ')'; }; reader.readAsDataURL(file); });
|
美化input file代码:
1 2
| <a href="javascript:;" class="test-image-file"> <input type="file" name="" id="">点击这里上传文件</a>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| .test-image-file { padding: 4px 10px; height: 20px; line-height: 20px; position: relative; cursor: pointer; color: #888; background: #fafafa; border: 1px solid #ddd; border-radius: 4px; overflow: hidden; display: inline-block; *display: inline; *zoom: 1 } .test-image-file input { position: absolute; font-size: 100px; right: 0; top: 0; opacity: 0; filter: alpha(opacity=0); cursor: pointer } .test-image-file:hover { color: #444; background: #eee; border-color: #ccc; text-decoration: none }
|
实际操作案例请看之前的文章(包含动态渲染中的解决方案):
https://blog.virs.xyz/?p=211