之前要实现图片预览功能纠结了很久,在使用<input type="file">这个元素之后,选择完图片显示的路径总是加密过的,经过了百度的各种搜索,原来要想实现在上传图片之前实现预览功能只能在ie中实现,要想所有浏览器兼容的方法,只能使用Html5 去实现图片预览
html代码
<li>
<label class="enterText">列表图:</label>
<a href="javascript:;" name="bannerimg" class="enterUpload">
<span class="enterUrl"></span>
<input type="file" name="bannerimg" id="file" οnchange="getvl(this)" class="enterInput">
</a>
<div class="Validform_checktip"></div>
</li>
<li>
<label class="enterText enterArea">列表图预览:</label>
<p class="enterImg"><img id="previewImage" src=""/></p>
<div class="Validform_checktip"></div>
</li>
html5处理上传图片之前的预览功能
document.getElementById('file').onchange = function(evt) {
// 如果浏览器不支持FileReader,则不处理
if (!window.FileReader) return;
var files = evt.target.files;
for (var i = 0, f; f = files[i]; i++) {
if (!f.type.match('image.*')) {
continue;
}
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
// img 元素
document.getElementById('previewImage').src = e.target.result;
};
})(f);
reader.readAsDataURL(f);
}
}