function onUploadImgChange(sender, index) {

    if (!sender.value.match(/.jpg|.gif|.png|.bmp/i)) {

        alert('图片格式无效！');

        return false;

    }

    var objLi = $("#picdiv li[index='" + index + "']");

    var objPreview = objLi.find('.preview')[0];

    var objPreviewFake = objLi.find('.preview_fake')[0];

    var objPreviewSizeFake = objLi.find('.preview_size_fake')[0];

    if (sender.files && sender.files[0]) {  

        objPreview.style.display = 'block';

        objPreview.style.width = 'auto';

        objPreview.style.height = 'auto';

        // Firefox 因安全性问题已无法直接通过 input[file].value 获取完整的文件路径        

        objPreview.src = sender.files[0].getAsDataURL();

    } else if (objPreviewFake.filters) {

        // IE7,IE8 在设置本地图片地址为 img.src 时出现莫名其妙的后果        

        //（相同环境有时能显示，有时不显示），因此只能用滤镜来解决        

        // IE7, IE8因安全性问题已无法直接通过 input[file].value 获取完整的文件路径        

        sender.select();

        var imgSrc = document.selection.createRange().text;

        objPreviewFake.filters.item(

            'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;

        objPreviewSizeFake.filters.item(

            'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;

        autoSizePreview(objPreviewFake,

            objPreviewSizeFake.offsetWidth, objPreviewSizeFake.offsetHeight);

        objPreview.style.display = 'none';

    }
    objLi.find('.preview_wrapper').css("background-image", "url(../images/images_13.jpg");
    objLi.find('.preview_wrapper').css("background-color", "#fff");

}

function onPreviewLoad(sender) {

    autoSizePreview(sender, sender.offsetWidth, sender.offsetHeight);

}

function autoSizePreview(objPre, originalWidth, originalHeight) {

    var zoomParam = clacImgZoomParam(140, 140, originalWidth, originalHeight);

    objPre.style.width = zoomParam.width + 'px';

    objPre.style.height = zoomParam.height + 'px';

    objPre.style.marginTop = zoomParam.top + 'px';

    objPre.style.marginLeft = zoomParam.left + 'px';

}

function clacImgZoomParam(maxWidth, maxHeight, width, height) {

    var param = { width: width, height: height, top: 0, left: 0 };

    if (width > maxWidth || height > maxHeight) {

        rateWidth = width / maxWidth;

        rateHeight = height / maxHeight;

        if (rateWidth > rateHeight) {

            param.width = maxWidth;

            param.height = height / rateWidth;

        } else {

            param.width = width / rateHeight;

            param.height = maxHeight;

        }

    }

    param.left = (maxWidth - param.width) / 2;

    param.top = (maxHeight - param.height) / 2;

    return param;

}        