官网:http://fex.baidu.com/webuploader/




<!--引入CSS-->
<link rel="stylesheet" type="text/css" href="{$setting.public_url}/static/webuploader-0.1.5/webuploader.css">
<!--引入JS-->
<script type="text/javascript" src="{$setting.public_url}/static/webuploader-0.1.5/webuploader.js"></script>
<input type="text" name="avatar" id="avatar" class="form-control" placeholder="头像" value="{$detail.avatar|default=''}" >
<!--dom结构部分-->
<div id="uploader-demo">
    <!--用来存放item-->
    <div id="avatar_fileList" class="uploader-list"></div>
    <div id="avatar_filePicker">选择图片</div>
</div>


<script>
    // 初始化Web Uploader
    var uploader = WebUploader.create({
        // 选完文件后,是否自动上传。
        auto: true,
        // swf文件路径
        swf: '{$setting.public_url}/static/webuploader-0.1.5/Uploader.swf',
        // 文件接收服务端。
        server: "{:url('/upload/')}?from=sys&model=admin",
        // 选择文件的按钮。可选。
        // 内部根据当前运行是创建,可能是input元素,也可能是flash.
        pick: '#avatar_filePicker',
        //允许重复上传
        duplicate:true,
        // 只允许选择图片文件。
        accept: {
            title: 'Images',
            extensions: 'gif,jpg,jpeg,bmp,png',
            mimeTypes: 'image/*'
        }
    });

    // 当有文件添加进来的时候
    uploader.on('fileQueued', function (file) {
        var $li = $(
                '<div id="' + file.id + '" class="file-item thumbnail">' +
                '<img>' +
                '<div class="info">' + file.name + '</div>' +
                '</div>'
                ),
                $img = $li.find('img');


        // $list为容器jQuery实例
        $('#uploader-demo').append($li);

        // 创建缩略图
        // 如果为非图片文件,可以不用调用此方法。
        // thumbnailWidth x thumbnailHeight 为 100 x 100
        uploader.makeThumb(file, function (error, src) {
            if (error) {
                $img.replaceWith('<span>不能预览</span>');
                return;
            }

            $img.attr('src', src);
        }, 100, 100);
    });

    // 文件上传过程中创建进度条实时显示。
    uploader.on('uploadProgress', function (file, percentage) {
        var $li = $('#' + file.id),
                $percent = $li.find('.progress span');

        // 避免重复创建
        if (!$percent.length) {
            $percent = $('<p class="progress"><span></span></p>')
                    .appendTo($li)
                    .find('span');
        }

        $percent.css('width', percentage * 100 + '%');
    });

    // 文件上传成功,给item添加成功class, 用样式标记上传成功。
    uploader.on('uploadSuccess', function (file, response) {
        $('#' + file.id).addClass('upload-state-done');
        $('#avatar').val(response.message);
    });

    // 文件上传失败,显示上传出错。
    uploader.on('uploadError', function (file) {
        var $li = $('#' + file.id),
                $error = $li.find('div.error');

        // 避免重复创建
        if (!$error.length) {
            $error = $('<div class="error"></div>').appendTo($li);
        }

        $error.text('上传失败');
    });

    // 完成上传完了,成功或者失败,先删除进度条。
    uploader.on('uploadComplete', function (file) {
        $('#' + file.id).find('.progress').remove();
    });
</script>



点赞(0) 打赏

Comment list 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部