支持IE8的多文件、多图异步上传并能预览的插件

所属分类:输入-上传

 17542  66  查看评论 (90)
支持IE8的多文件、多图异步上传并能预览的插件 ie兼容8

更新时间:2017/12/18 上午9:19:27

更新说明:修复IE8下的一些bug


更新时间:2017/12/4 上午11:45:30

更新说明:

    1、使用了最新版本的webuploader

    2、更改了一些功能的内部实现方式

    3、增加了拖拽上传功能


更新时间:2017/9/30 下午11:14:43

更新说明:

    1、修复IE8点击上传图标删除不了的bug及文件数量统计不正确的bug

    2、优化预览图宽度计算方式,当自定义预览框时,预览图大小随着.imgWrap元素的宽度而变化。


更新时间:2017/8/28 下午5:32:12

更新说明:

    1)、使用面向对象编程思想进行封装,一个页面中可以有n个实例

    2)、支持AMD、CMD

    3)、提供了丰富的参数配置及方法,可灵活应用于您的项目中 

    4)、使用简单,方便

<!-- .webuploader-pick 这个类可以控制选择文件可点按钮的大小 -->
<h1>即可以选择图片又可以选择其他文件</h1>
<div id="uploader"></div>
<!-- 千万不要使用button标签,否则在火狐和IE中点击会无效
        <button type="button" id="choose_file">选择图片</button> -->
<div class="choose-file-btn" id="choose_file">选择图片</div>
<button type="button" id="upload_now">上传图片</button>
<h2>只能选择图片</h2>
<div id="uploader2"></div>
<!-- 千万不要使用button标签,否则在火狐和IE中点击会无效
        <button type="button" id="choose_file">选择图片</button> -->
<div class="choose-file-btn" id="choose_file2">选择图片</div>
<button type="button" id="upload_now2">上传图片</button>
<button type="button" id="retry_upload">重新上传</button>
<script>
    $(function() {
        var uploader = uploadImage({
            wrap: jQuery("#uploader"), //包裹整个上传控件的元素,必须。可以传递dom元素、选择器、jQuery对象
            /*预览图片的宽度,可以不传,如果宽高都不传则为包裹预览图的元素宽度,高度自动计算*/
            //width: "160px", 
            height: 100, //预览图片的高度
            auto: false, //是否自动上传
            method: "POST", //上传方式,可以有POST、GET
            sendAsBlob: false, //是否以二进制流的形式发送
            viewImgHorizontal: true, //预览图是否水平垂直居中
            fileVal: "file", // [默认值:'file'] 设置文件上传域的name。
            btns: { //必须
                uploadBtn: $("#upload_now"), //开始上传按钮,必须。可以传递dom元素、选择器、jQuery对象
                retryBtn: null, //用户自定义"重新上传"按钮
                chooseBtn: '#choose_file', //"选折图片"按钮,必须。可以传递dom元素、选择器、jQuery对象
                chooseBtnText: "选择文件" //选择文件按钮显示的文字
            },
            pictureOnly: false, //只能上传图片
            datas: {
                "uuid": new Date().getTime()
            }, //上传的参数,如果有参数则必须是一个对象
            // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!false为不压缩
            resize: false,
            //是否可以重复上传,即上传一张图片后还可以再次上传。默认是不可以的,false为不可以,true为可以
            duplicate: false,
            multiple: true, //是否支持多选能力
            swf: "Uploader.swf", //swf文件路径,必须
            url: "index2.html", //图片上传的路径,必须
            maxFileNum: 20, //最大上传文件个数
            maxFileTotalSize: 10485760, //最大上传文件大小,默认10M
            maxFileSize: 2097152, //单个文件最大大小,默认2M
            showToolBtn: true, //当鼠标放在图片上时是否显示工具按钮,
            onFileAdd: null, //当有图片进来后所处理函数
            onDelete: null, //当预览图销毁时所处理函数
            /*当单个文件上传失败时执行的函数,会传入当前显示图片的包裹元素,以便用户操作这个元素*/
            uploadFailTip: null,
            onError: null, //上传出错时执行的函数
            notSupport: null, //当浏览器不支持该插件时所执行的函数
            /*当上传成功(此处的上传成功指的是上传图片请求成功,并非图片真正上传到服务器)后所执行的函数,会传入当前状态及上一个状态*/
            onSuccess: null
        });
        /*如果按钮开始是隐藏的,经过触发后才显示,则可以用这个方法重新渲染下*/
        //uploader.refresh();//该方法可以重新渲染选择文件按钮
        //uploader.upload();//调用该方法可以直接上传图片
        //uploader.retry();//调用该方法可以重新上传图片
        console.log(uploader);
        var uploader2 = uploadImage({
            wrap: "#uploader2", //包裹整个上传控件的元素,必须。可以传递dom元素、选择器、jQuery对象
            /*预览图片的宽度,可以不传,如果宽高都不传则为包裹预览图的元素宽度,高度自动计算*/
            //width: "160px", 
            height: 120, //预览图片的高度
            fileVal: "file", // [默认值:'file'] 设置文件上传域的name。
            btns: { //必须
                uploadBtn: $("#upload_now2"), //开始上传按钮,必须。可以传递dom元素、选择器、jQuery对象
                retryBtn: "#retry_upload", //用户自定义"重新上传"按钮
                chooseBtn: '#choose_file2', //"选折图片"按钮,必须。可以传递dom元素、选择器、jQuery对象
                chooseBtnText: "选择图片" //选择文件按钮显示的文字
            },
            pictureOnly: true, //只能上传图片
            resize: false,
            //是否可以重复上传,即上传一张图片后还可以再次上传。默认是不可以的,false为不可以,true为可以
            duplicate: true
        });
    });
</script>
相关插件-上传

多图片上传预览(纯前端)

多图片上传预览,已测试ie 360 火狐 谷歌浏览器
  上传
 172774  276

pc端图片批量上传,可拖动图片交换位置

jQuery可批量上传图片 可以拖动交换位置 可删除
  上传
 15292  65

js上传图片预览

js上传图片本地预览
  上传
 55507  201

webuploader 上传插件(根据官方做了小改)

webuploader上传插件,上图之前图片可编辑、可随意排版上传图片顺序
  上传
 23049  104

讨论这个项目(90)回答他人问题或分享插件使用方法奖励jQ币

    0
    2018/1/19 10:14:26

    IE 9 为何无法使用,完全把代码copy 过去都不行

    回复
    东北陈大嘴 0
    2018/1/17 18:53:01

    我能退钱吗  全tm是毛病!

    回复
    东北陈大嘴 0
    2018/1/17 18:47:01

    点击添加数据就报错??

    回复
    -Mr.k 0
    2017/12/29 14:58:53

    有用ajax提交的 demo嘛?

    回复
    心淡如水 0
    2017/12/16 10:25:54

    你好.ie8下为什么报错

        xta fnhc tewq0
        2017/12/18 9:19:20

        报什么错?报console错误的我已经解决了,上传了新的版本

        心淡如水0
        2017/12/18 10:08:27

        ie8文件都打不开,可以加下qq咨询下你吗?我的584731170

    回复
    447310574 0
    2017/12/5 22:39:30

    可以支持多个实例吗?

        xta fnhc tewq0
        2017/12/8 9:52:34

        可以的,在同一个页面中可以有多个实例

        4473105740
        2017/12/10 20:42:25

        WebUploader 在IE8,9中使用flash模式的时候,报错。me._responseJson = me._response ? p(me._response) : {};什么问题?

        xta fnhc tewq0
        2017/12/11 11:09:24

        这个没遇到过,你看下你的配置是否正确咯

        4473105740
        2017/12/11 11:22:11
        这个插件能点击才上传吗?
        xta fnhc tewq0
        2017/12/13 16:17:47

        可以呀,你把auto属性设为false,或不写auto属性就不会自动上传呀

        4473105740
        2017/12/14 8:50:10
        您好,在IE8下正常,IE9下,按钮一打开页面是红色的,点击不了,按F12启动调试后又可以了,是第133行的console.log 报错了。
        xta fnhc tewq0
        2017/12/15 9:53:06

        好的,插件里面没有console,IE8、9中是没有console对象的,因此才报错了

    回复
    乜级圣人 0
    2017/11/23 10:44:15

    为什么下载下来之后在360-IE9模式下点选择图片没反应呢 ?  查看演示的时候是可以的呀 

        乜级圣人0
        2017/11/23 18:04:47

        原来需要放服务器中

    回复
    繁华落尽 0
    2017/11/17 17:59:26

    设置了自动上传后工具条就不显示了,这什么情况,auto:true后鼠标一移上去不显示工具栏

        xta fnhc tewq0
        2017/11/19 12:00:13

        上传完成了工具条就会自动隐藏掉,因为工具条只有在图片未上传时操作才有效

        繁华落尽0
        2017/11/20 10:20:41

        能不能设置图片不预览呢?

    回复
    0
    2017/10/25 9:17:52

    兄弟 有进度条吗

        xta fnhc tewq0
        2017/10/26 17:54:52
        暂时没做,你可以通过uploadPreview.uploader拿到webuploader对象实例,然后你可以自己去实现
        繁华落尽0
        2017/11/17 17:58:55

        设置了自动上传后工具条就不显示了,这什么情况,auto:true后鼠标一移上去不显示工具栏

    回复
    取名字好烦 0
    2017/9/29 20:06:35

    BUG实在是太多了,当限定了上传数量,选择文件达到限定的上限后删除文件,再重新选择文件依然不让你选择

        xta fnhc tewq0
        2017/9/30 23:12:04
        您说的选择文件数量达到上限后删除一张,然后再选择依然删不了的情况我也未发现
        取名字好烦0
        2017/10/12 9:22:42

        我是发现有这个问题了,假如我限定最多选择3张图片,当图片达到3张之后我删掉一张,再进行选择图片,想要选择的图片显示不出来

        xta fnhc tewq0
        2017/10/13 10:28:51

        你用的是什么浏览器?第一个版本的IE8中会出现这个问题,后面我更新后就修复了

    回复
取消回复