jquery上传图片---本地浏览图片

//说明:图片上传预览插件
//上传的时候可以生成固定宽高范围内的等比例缩放图

//参数设置:
//width                     存放图片固定大小容器的宽
//height                    存放图片固定大小容器的高
//imgDiv                    页面DIV的JQuery的id
//maxSize					图片大小最大限制(K)
//imgType                   数组后缀名
//**********************图片上传预览插件*************************
(function ($) {
    jQuery.fn.extend({
        uploadPreview: function (opts) {
            opts = jQuery.extend({
                width: 0,
                height: 0,
                imgDiv: null,
                imgBox: null,
                maxSize: 300,
                noimg: ‘‘,
                imgType: ["gif", "jpeg", "jpg", "bmp", "png"],
                callback: function () { return false; }
            }, opts || {});
            var _this = $(this);
            var imgDiv = opts.imgDiv;
            var imgbox = opts.imgBox;
            //var image = new Image();
            //image.onload = function () {
            //    var thisw = this.width, thish = this.height, left, top;
            //    var rate = (opts.width / thisw < opts.height / thish) ? opts.width / thisw : opts.height / thish;
            //    if (rate <= 1) {
            //        imgDiv.width(thisw * rate);
            //        imgDiv.height(thish * rate);
            //    } else {
            //        imgDiv.width(thisw);
            //        imgDiv.height(thish);
            //        rate = 1;
            //    }
            //    left = (opts.width - thisw * rate) * 0.5;
            //    top = (opts.height - thish * rate) * 0.5;
            //    imgDiv.css({ "margin-left": left, "margin-top": top });
            //    setTimeout(function () {
            //        imgDiv.show();
            //    }, 200);
            //    image = null;
            //}
            //image.onerror = function () {
            //    this.src = noimg;
            //    imgDiv.attr(‘src‘, noimg);
            //    this.onerror = null;
            //}
            //image.src = imgDiv.attr(‘src‘);
            var version = 7;
            var filters = imgbox[0].filters ? true : false;//ie10内核filters是舍弃了的
            var v = { //判断是否是ie
                getie: function () {
                    if (window.attachEvent) {
                        return true;
                    }
                    else {
                        return false;
                    }
                },
                //是否是ie678
                getoldie: function () {
                    if (this.getie()) {
                        if (window.addEventListener) {
                            return false;
                        }
                        else {
                            return true;
                        }
                    }
                    else {
                        return false;
                    }
                },
                ie9: function () {
                    if (navigator.userAgent.indexOf(‘MSIE 9.0‘) > 0) {
                        return true;
                    }
                }
            }
            version = (v.getoldie || v.ie9) ? 9 : 10;
            var fit = (version <= 9 && filters) || (version >= 10 && filters);

            var autoScaling = function () {
                if (fit) imgbox.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image";
                var box_width = imgbox.width();
                var box_height = imgbox.height();
                var img_width = imgDiv.width();
                var img_height = imgDiv.height();
                if (fit) {
                    img_width = box_width;
                    img_height = box_height;
                }
                if (img_width > 0 && img_height > 0) {
                    var rate = (opts.width / img_width < opts.height / img_height) ? opts.width / img_width : opts.height / img_height;
                    if (rate <= 1) {
                        img_width = img_width * rate;
                        img_height = img_height * rate;
                        imgbox.width(img_width);
                        imgbox.height(img_height);
                        if (fit) {
                            imgbox.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "scale";
                        }
                        else {
                            imgDiv.width(img_width);
                            imgDiv.height(img_height);
                        }

                    } else {
                        imgDiv.width(img_width);
                        imgDiv.height(img_height);
                    }
                    var left = (opts.width - imgbox.width()) * 0.5;
                    var top = (opts.height - imgbox.height()) * 0.5;
                    imgbox.css({ "margin-left": left, "margin-top": top });
                    setTimeout(function () {
                        imgDiv.show();
                        if (fit) {
                            imgbox.show();
                        }
                    }, 100);
                }
                else {
                    imgbox.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "scale";
                    imgbox.width(opts.width);
                    imgbox.height(opts.height);
                }
            };
            var createImg = function () {
                imgDiv.html(‘‘);
                var img = $("<img />");
                imgDiv.replaceWith(img);
                imgDiv = img;
            };
            _this.change(function () {
                imgDiv.hide();
                imgDiv.css({ ‘width‘: ‘‘, ‘height‘: ‘‘ });
                imgbox.css({ ‘width‘: ‘‘, ‘height‘: ‘‘, ‘padding‘: ‘‘ });
                if (this.value) {
                    if (!RegExp("\.(" + opts.imgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
                        alert("图片类型必须是" + opts.imgType.join(",") + "中的一种");
                        this.value = "";
                        return false;
                    }
                    //ie7\8\9
                    var i = this;
                    if (fit) {
                        try {
                            this.select();
                            var imgSrc = document.selection.createRange().text;
                            imgbox.html(‘‘);
                            imgbox.css({ filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)" });
                            imgbox[0].filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "scale";
                            imgbox[0].filters.item(‘DXImageTransform.Microsoft.AlphaImageLoader‘).src = imgSrc;
                            imgbox.hide();
                            setTimeout(function () {
                                autoScaling();
                            }, 100);
                        } catch (e) {
                            alert("无效的图片文件!");
                            return;
                        }
                    }
                    else {
                        try {
                            var file = null;
                            var size = 0;
                            if (this.files && this.files[0]) {
                                file = this.files[0];
                                size = file.size;
                            } else if (this.files && this.files.item(0)) {
                                file = this.files.item(0);
                                size = file.fileSize;
                            }

                            if ((size / 1024) > opts.maxSize) {
                                alert(‘图片大小不能超过‘ + opts.maxSize + ‘K‘);
                                return false;
                            }

                            //支持html5的浏览器,比如高版本的firefox、chrome、ie10
                            if (this.files && this.files[0]) {
                                if ((this.files[0].size / 1024) > opts.maxSize) {
                                    alert(‘图片大小不能超过‘ + opts.maxSize + ‘K‘);
                                    return false;
                                }
                                var reader = new FileReader();
                                reader.onload = function (e) {
                                    imgDiv.attr(‘src‘, e.target.result);
                                };
                                reader.readAsDataURL(this.files[0]);
                                setTimeout(function () {
                                    autoScaling();
                                }, 100);
                            }

                            //火狐非捆绑软件 版本都30几点几了,还会有7.??
                            //createImg();
                            //Firefox 因安全性问题已无法直接通过input[file].value 获取完整的文件路径
                            //try {
                            //    //Firefox7.0 以下
                            //    imgDiv.attr(‘src‘, file.getAsDataURL());
                            //} catch (e) {
                            //    //Firefox8.0以上
                            //    imgDiv.attr(‘src‘, window.URL.createObjectURL(file));
                            //}
                            //setTimeout(function () {
                            //    autoScaling();
                            //}, 100);
                        } catch (e) {
                            alert(‘系统错误,请重试!‘);
                        };
                    }
                }
            });
        }
    });
})(jQuery);

  调用:

<div class="file-box">
   <p>图片上传</p>
   <div class="file-info">
     <div class="show-img" id="imgbox2">
       <img src="/images/ico-upfileimg.png" id="img2" />
     </div>
   </div>
   <div class="file-input">点击上专<input type="file" id="file2" name="CFileUp" /></div>
</div>

  说明:由于ie早期是用滤镜实现所需要一个div层如上面的

 <div class="show-img" id="imgbox2">
   $(function () {
        $("#file1").uploadPreview({
            width: 220,
            height: 150,
            imgDiv: $(‘#img1‘),
            imgBox: $(‘#imgbox1‘),
            noimg: ‘/Images/noneimg.jpg‘,
            callback: function () { }
        });
    });

  

时间: 2024-08-25 19:44:31

jquery上传图片---本地浏览图片的相关文章

上传图片前浏览图片

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> New Document </title> <meta name="Generator" content="EditPlus

上传图片之前浏览图片效果

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="http://cdn.bootcss.com/jquery/1.7.2/jquery.min.js"></script> <script type="te

asp.net中刷新和无刷新(JQuery实现)浏览图片的方法

.aspx代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="图片浏览.aspx.cs" Inherits="图片浏览" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1

ckedit 浏览图片和上传图片

<head>标签内引入 <script src="${ctx}/ckeditor/ckeditor.js" type="text/javascript"></script> config.js配置文件 CKEDITOR.editorConfig = function( config ) {  // Define changes to default configuration here. For example:  config.

type=&quot;file&quot;实现兼容IE8本地选择图片预览

一.HTML代码 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UploadImagePage.aspx.cs" Inherits="Webs.pages.BookingNote.UploadImagePage" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns="http://www.

JavaScript把项目本地的图片或者图片的绝对路径转为base64字符串、blob对象在上传

主题: JavaScript把项目本地的图片或者图片的绝对路径转为base64字符串.blob对象在上传. 用处: 从本地选择图片上传,如项目规定只能选择本项目文件夹下的图像上传为头像等. 主要思想: 使用canvas.toDataURL()方法将图片的绝对路径转换为base64编码. 具体用法: 在这我们引用淘宝服务器上的一张图片举例: var imgSrc = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.j

15款jQuery带缩略图的图片轮播切换特效代码

JQuery宽屏电影大图幻灯片轮播切换代码 jquery带文字缩略图的图片轮播切换代码 jQuery OwlCarousel图片滚动插件世界杯图片轮播滚动代码 jQuery仿中国建设银行带缩略图控制滚动图片轮播切换 jquery图片滑动切换效果左右按钮控制图片滑动轮播切换效果 jQuery幻灯片插件可自动轮播和暂停的图片幻灯片代码 jQuery带缩略图的焦点图代码_带标题的焦点图代码 jquery图片轮播插件带小缩略图片的焦点图切换效果代码 原生js图片插件缩略图片控制大图淡出淡进切换支持图片轮

js实现上传图片本地预览功能

js: /**     * 上传图片本地预览方法     * @param {Object} fileObj 上传文件file的id元素  fresh-fileToUpload      * @param {Object} previewObj 上传图片的预览id元素  fresh-send-preview-img     * @param {Object} localImg 预览图片的父层id元素  fresh-send-preview-imgvideo     */    fs.setIma

web浏览图片支持旋转,缩放功能

浏览图片使用了layer插件,旋转需要引用jquery.rotate.min.js 放大缩小是根据图片等比例缩放,下面是本人写的部分代码:在layer.ext.js这个插件的扩展js文件里需要加上如下代码,实现旋转,缩放功能: //旋转 var value = 0; log.imgtit.find('a').on('click', function () { value += 90; log.bigimg.find('img').rotate({ animateTo: value }) });