上传图片本地实时预览

来源:互联网 发布:千牛淘宝卖家助手 编辑:程序博客网 时间:2024/06/01 14:01

1、picturePreview.js本地图片预览:

   <input id="File1" type="file" onchange="previewImage(this)" />        <div id="preview">        </div>

js代码:

function previewImage(file) {/**本地图片预览**/    var MAXWIDTH = 100;    var MAXHEIGHT = 100;    var div = document.getElementById('preview');    if (file.files && file.files[0]) {        div.innerHTML = '<img id=imghead>';        var img = document.getElementById('imghead');        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]);    }    else {        var sFilter = 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="';        file.select();        var src = document.selection.createRange().text;        div.innerHTML = '<img id=imghead>';        var img = document.getElementById('imghead');        img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src;        var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);        status = ('rect:' + rect.top + ',' + rect.left + ',' + rect.width + ',' + rect.height);        div.innerHTML = "<div id=divhead style='width:" + rect.width + "px;height:" + rect.height + "px;margin-top:" + rect.top + "px;margin-left:" + rect.left + "px;" + sFilter + src + "\"'></div>";    }}function clacImgZoomParam(maxWidth, maxHeight, width, height) {    var param = { top: 0, left: 0, width: width, height: height };    if (width > maxWidth || height > maxHeight) {        rateWidth = width / maxWidth;        rateHeight = height / maxHeight;        if (rateWidth > rateHeight) {            param.width = maxWidth;            param.height = Math.round(height / rateWidth);        } else {            param.width = Math.round(width / rateHeight);            param.height = maxHeight;        }    }    param.left = Math.round((maxWidth - param.width) / 2);    param.top = Math.round((maxHeight - param.height) / 2);    return param;}

效果:



原创粉丝点击