前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js实现本地上传图片预览

js实现本地上传图片预览

作者头像
OECOM
发布2020-07-02 11:18:17
8K0
发布2020-07-02 11:18:17
举报
文章被收录于专栏:OECOMOECOM

在做网站系统时经常会用到图片上传功能,用户往往希望能看到自己上传的图片的样子,有的人是采用将图片上传到服务器之后再回显到页面,这种方式在无形之中增加了服务器的运行压力,因为如果用户感觉不满意还会再次上传图片。为了减轻服务器压力,我们通过js来实现本地图片上传预览功能,不经过服务器就实现预览效果。下面请看代码

代码语言:javascript
复制
<div id="localImag">
     <img id="preview" onmouseover="datu()" src="" width="150" height="180"
     style="display: block; width: 150px; height: 180px;">
</div>
<input type="file" name="file" id="doc" style="width:150px;" onchange="javascript:setImagePreview();">

上面这部分代码是页面上传按钮和显示图片的区域。接下来请看js控制代码

代码语言:javascript
复制
function setImagePreview(avalue) {
	var docObj=document.getElementById("doc");
	var imgObjPreview=document.getElementById("preview");
	if(docObj.files &&docObj.files[0]){
		//火狐下,直接设img属性
		imgObjPreview.style.display = 'block';
		imgObjPreview.style.width = '150px';
		imgObjPreview.style.height = '180px'; 
		//imgObjPreview.src = docObj.files[0].getAsDataURL();
	 
		//火狐7以上版本不能用上面的getAsDataURL()方式获取,需要一下方式
		imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
	}
	else{
		//IE下,使用滤镜
		docObj.select();
		var imgSrc = document.selection.createRange().text;
		var localImagId = document.getElementById("localImag");
		//必须设置初始大小
		localImagId.style.width = "150px";
		localImagId.style.height = "180px";
		//图片异常的捕捉,防止用户修改后缀来伪造图片
	try{
	localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
	localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
	}
	catch(e){
		alert("您上传的图片格式不正确,请重新选择!");
		return false;
	}
		imgObjPreview.style.display = 'none';
		document.selection.empty();
	}
		return true;
}

这样我们就实现了本地图片上传预览功能。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档