06.LoT.UI 前后台通用框架分解系列之——浮夸的图片上传

LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui

LoT.UI开源地址如下:https://github.com/dunitian/LoTCodeBase/tree/master/LoTUI

先看在LoT.UI里面的应用效果图:

懒人福利:http://www.cnblogs.com/dunitian/p/5535455.html(一句代码直接实现)

关键代码解析:(https://github.com/dunitian/LoTCodeBase/tree/master/NetCode/3.常用技能/02.uploader系列/01.Webuploader

JS部分:

<script type="text/javascript">
        //1.uploader初始化。 auto-是否自动上传
        var uploader = WebUploader.create({
            server: ‘/Home/Upload‘,
            swf: ‘/open/webuploader/Uploader.swf‘,
            pick: ‘#lot-picker‘,
            auto: true,                     //自动上传
            //chunked: true,                //断点续传-单个默认5M
            duplicate: false,               //文件去重
            prepareNextFile: true,          //提前准备下一个文件(可选,单文件不建议开)
            //formData: { },                //自定义参数表,每次请求都会发送这些参数
            paste: document.body,           //启动剪贴板(可选)
            dnd: $(‘#lot-uploader‘),        //启动拖拽(可选)
            fileNumLimit: 5,                //文件总数量
            fileSingleSizeLimit: 10485760,  //单个文件最大值(IIS默认<=4M,可自行设置:httpRuntime的maxRequestLength)
            accept: {
                title: ‘Images‘,
                extensions: ‘gif,jpg,jpeg,bmp,png‘,
                mimeTypes: ‘image/*‘
            }
        });

        //2.文件添加时,添加样式和缩略图
        uploader.on(‘fileQueued‘, function (file) {
            var $li = $(
                    ‘<div id="‘ + file.id + ‘" class="file-item thumbnail">‘ +
                        ‘<img>‘ +
                        ‘<div class="info info-top">Szie:‘ + Math.floor(file.size / 1024) + ‘kb‘ + ‘</div>‘ +
                        ‘<div class="info info-bot">‘ + file.name + ‘</div>‘ +
                    ‘</div>‘
                    ),
                $img = $li.find(‘img‘);
            $(‘#lot-filelist‘).append($li);
            // 创建缩略图
            uploader.makeThumb(file, function (error, src) {
                if (error) {
                    $img.replaceWith(‘<span>不能预览</span>‘);
                    return;
                }
                $img.attr(‘src‘, src);
            }, 100, 100);
            ////计算文件MD5(可加)
            //uploader.md5File(file).then(function (val) {
            //    console.log(‘md5:‘,val,‘-‘,file.name);
            //});
        });

        //3.文件上传过程中创建进度条实时显示。
        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 + ‘%‘);
        });

        //4.文件上传成功,给item添加成功class, 用样式标记上传成功。
        uploader.on(‘uploadSuccess‘, function (file, data) {
            if (data.status) {
                $(‘#‘ + file.id).addClass(‘upload-state-done‘);
            } else {
                showMsg(file, data.msg);
            }
        });

        //5.失败系列的处理
        //5.1添加失败处理
        uploader.on(‘error‘, function (log) {
            switch (log) {
                case ‘F_EXCEED_SIZE‘:
                    addMsg(‘文件10M以内‘); break;
                case ‘Q_EXCEED_NUM_LIMIT‘:
                    addMsg(‘已超最大上传数‘); break;
                case ‘Q_TYPE_DENIED‘:
                    addMsg(‘文件类型不正确‘); break;
                case ‘F_DUPLICATE‘:
                    addMsg(‘文件已经被添加‘); break;
                default:
                    addMsg(‘文件添加失败~‘); break;
            }
        });
        //5.2上传失败处理
        uploader.on(‘uploadError‘, function (file) {
            showMsg(file, ‘上传失败‘);
        });

        //错误信息显示
        function showMsg(file, msg) {
            var $li = $(‘#‘ + file.id), $error = $li.find(‘div.error‘);
            //避免重复创建
            if (!$error.length) {
                $error = $(‘<div class="error"></div>‘).appendTo($li);
            }
            $error.text(msg);
        }
        //错误信息提示
        function addMsg(msg) {
            $(‘#lot-uploader‘).prepend(‘<h3 class="temp-log" style="color:red;">‘ + msg + ‘</h3>‘)
            setTimeout(function () {
                $(‘.temp-log‘).remove();
            }, 2000);
        }
    </script>

开源组件:https://github.com/fex-team/webuploader

扩展组件:https://github.com/dunitian/LoTUploader

时间: 2024-08-01 14:57:23

06.LoT.UI 前后台通用框架分解系列之——浮夸的图片上传的相关文章

07.LoT.UI 前后台通用框架分解系列之——轻巧的文本编辑器

LoT.UI汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui 上次说的是强大的百度编辑器 http://www.cnblogs.com/dunitian/p/5551701.html 这次说下简洁版而又不失功能的WangEditor 先看看效果 基本上常用功能都有了,下面说下完整的demo: 前端案例: <!DOCTYPE html> <html> <head> <meta http-equiv=&qu

01.LoT.UI 前后台通用框架分解系列之——小图片背景全屏显示(可自动切换背景)

LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/dunitian/LoTCodeBase/tree/master/LoTUI 先看在LoT.UI里面的应用效果图: 屁话不多说,上核心代码:(完整代码:https://github.com/dunitian/LoTCodeBase/blob/master/LoTUI/Manager/Login.html

08.LoT.UI 前后台通用框架分解系列之——多样的Tag选择器

LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/dunitian/LoTCodeBase/tree/master/LoTUI 这个必须说下,本来是用Bootstrap-Select做的,很漂亮,正好后台也是Bootstrap.后来发现不能满足需求.Tag标签有则选,没则添加.而Bootstrap-Select的文本框是不可以手动输入的==>so,用了

07.LoT.UI 前后台通用框架分解系列之——强大的文本编辑器

LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/dunitian/LoTCodeBase/tree/master/LoTUI 先看在LoT.UI里面的应用效果图: 待续...

02.LoT.UI 前后台通用框架分解系列之——灵活的菜单栏

LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/dunitian/LoTCodeBase/tree/master/LoTUI 先看在LoT.UI里面的应用效果图: 这个是基于Bootstrap的,所以得先引入Bootstrap系列的东西,核心源码如下:(完整demo:https://github.com/dunitian/LoTCodeBase/bl

thinkphp开发系列-ueditor1.43修改图片上传路径

最近用的ueditor1.43感觉分厂不错,但是如何能自定义ueditor的上传路径呢 然后进入php目录 打开后参考下图修改

laravel框架里用jq实现ajax图片上传

//图片上传 $('#upload').change(function(){ var img = document.getElementById("upload").files[0]; var form = new FormData(); form.append("img", img); form.append("_token","{{ csrf_token() }}"); console.log(form); $.ajax(

springMVC框架下——通用接口之图片上传接口

我所想要的图片上传接口是指服务器端在完成图片上传后,返回一个可访问的图片地址. spring mvc框架下图片上传非常简单,如下 1 @RequestMapping(value="/uploadImg", method=RequestMethod.POST) 2 @ResponseBody 3 public String uploadImg(@RequestParam(value="img")MultipartFile img){ 4 File f = new Fi

BootStrap 智能表单系列 九 表单图片上传的支持

本章介绍如何在生成表单后,可以支持上传图片后可以及时预览图片 代码如下(连接地址:https://github.com/xiexingen/Bootstrap-SmartForm/blob/master/demo/form3-ele-img.html): 依赖jquery-file-upload插件,需要引用jquery.ui.widget.js.jquery.iframe-transport.js.jquery.fileload.js 调用global.Fn.InitPlugin('img',