图片上传本地预览

图片上传有2个选择:

1:本地确认好后把图片上传到服务器

2:只要input改变就ajax异步请求将图片传到服务器。然后服务器返回上传的这个图片的链接地址。然后再再页面上展示出来。这样做的好处是提高兼容性。可以不用考虑IE兼容等等


这里只展示第一种上传方式的预览

html代码:

				<div class="up_img mar_t10 mar_l60 f_l over_h">
					<ul class="new_img f_l">
					</ul>
					<div class="up_push f_l">
						<input id="file" type="file" />
						<i class="icon icon-plus"></i>
						<p>上传图片</p>
					</div>
				</div>
css代码


.up_img{
	max-width:330px;
	height: 100px;
	overflow: hidden;
}
.new_img .preview{
	float: left;
	width: 100px;
	height: 100px;
	margin-right: 10px;
	box-sizing: border-box;
	border: 1px solid #ccc;
}
.up_push{
	box-sizing: border-box;
	border: 1px solid #ccc;
	width: 100px;
	height: 100px;
	background: #F1F1F1;
	text-align: center;
	padding-top: 25px;
	cursor:pointer ;
	position: relative;
}
.up_push i{
	color: #aaa;
	font-size:30px;
}

#file{
 width:100%;
 height:100%;
 position: absolute;
 left: 0;
 top: 0;
 z-index: 1;
 filter:alpha(opacity=0);
 -moz-opacity:.0;
 opacity:0.0;
 cursor:pointer;
}


js代码

upimg:function(){
			//上传图片
		$('#file').on('change',function(){
			var MAXWIDTH = 100;
			var MAXHEIGHT = 100;
			$('.new_img').append('<li class="preview"><img src=""/></li>')
			var div = $('.preview:last');
			if(file.files && file.files[0]) {
				var img = $('.preview:last>img')[0];
				img.onload = function() {
					var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);
					img.width = rect.width;
					img.height = rect.height;
					img.style.marginLeft = rect.left+'px';
					img.style.marginTop = rect.top + 'px';
				}
				var reader = new FileReader();
				reader.onload = function(evt) {
					img.src = evt.target.result;
				}
				reader.readAsDataURL(file.files[0]);
			}
		})
		
			//规定图片的显示高宽和上左间距
			function clacImgZoomParam(maxWidth, maxHeight, width, height) {
				var param = {
					top: 0,
					left: 0,
					width: width,
					height: height
				};
				rateWidth = width / maxWidth;
				rateHeight = height / maxHeight;
				if(rateWidth > rateHeight) {
					param.width = maxWidth;
					param.height = Math.round(height / rateWidth);
					param.left = 0;
					param.top = Math.round((maxHeight - param.height) / 2);
					
				} else {
					param.width = Math.round(width / rateHeight);
					param.height = maxHeight;
					param.left = Math.round((maxWidth - param.width) / 2);
					param.top = 0;
				}
				return param;
			}
		}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值