今天写项目的时候有个想要在修改个人信息的时候,上传图片可以选择预览,经过多番查找,找到一个比较有效的方法,这也是一个比较常用的需求,这里给大家分享。js代码见下
<script type="text/javascript">
//下面用于图片上传预览功能
function imgChange(headInput) {
var headPreview=document.getElementById("headPreview");
if(headInput.files &&headInput.files[0])
{
headPreview.src = window.URL.createObjectURL(headInput.files[0]);
//alert("我是用的第一种方法");
}
else
{
//alert("我是用的第二种方法");
//IE下,使用滤镜
headInput.select();
var imgSrc = document.selection.createRange().text;
//必须设置初始大小
headPreview.style.width = "100px";
headPreview.style.height = "100px";
//图片异常的捕捉,防止用户修改后缀来伪造图片
try{
localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
}
catch(e)
{
alert("您上传的图片格式不正确,请重新选择!");
return false;
}
headPreview.style.display = 'none';
document.selection.empty();
}
return true;
}
<tr class="active"><td colspan=2<img id="headPreview" class="img-rounded" src="<%=basePath %>${cmAdmin.head}" οnclick="headInput.click()">
<input id="headInput" name="headimg" type="file" οnchange="imgChange(this)" style="display:none"/>
上面是html的代码,亲测有效。