• kendoUpload 上传控件


    1.带模板的upload,可以根据上传文件类型的不同,来切换对应的icon图标

    CSS代码:

    .file-icon {
                display: inline-block;
                float: left;
                width: 48px;
                height: 48px;
                margin-left: 10px;
                margin-top: 13.5px;
            }
    
            .img-file { background-image: url('../../imgs/upload/jpg.png') }
            .doc-file { background-image: url("../../imgs/upload/doc.png") }
            .pdf-file { background-image: url("../../imgs/upload/pdf.png") }
            .xls-file { background-image: url("../../imgs/upload/xls.png") }
            .zip-file { background-image: url("../../imgs/upload/zip.png") }
            .default-file { background-image: url("../../imgs/upload/default.png") }
    
            #example .file-heading {
                font-family: Arial;
                font-size: 1.1em;
                display: inline-block;
                float: left;
                width: 60%;
                margin: 0 0 0 20px;
                height: 25px;
                -ms-text-overflow: ellipsis;
                -o-text-overflow: ellipsis;
                text-overflow: ellipsis;
                overflow:hidden;
                white-space:nowrap;
            }
    
            #example .file-name-heading {
                font-weight: bold;
                margin-top: 20px;
            }
    
                #example .file-size-heading {
                font-weight: normal;
                font-style: italic;
            }
    
            li.k-file div.file-wrapper {
                position: relative;
                height: 75px;
            }
            .k-upload div.k-dropzone{
                text-align: center;
            }

    HTML代码:

       <div id="example">
            <div class="demo-section k-content">
                <input type="file" name="files" id="files" />
            </div>
        </div>
        <!-- 模板 -->
        <script id="fileTemplate" type="text/x-kendo-template">
            <span class='k-progress'></span>
            <div class='file-wrapper'>
                <span class='file-icon #=addExtensionClass(files[0].extension)#'></span>
                <h4 class='file-heading file-name-heading'>Name: #=name#</h4>
                <h4 class='file-heading file-size-heading'>Size: #=size# bytes</h4>
                <strong class="k-upload-status">
                    <button type='button' class='k-upload-action'></button>
                    <button type='button' class='k-upload-action'></button>
                </strong>
            </div>
        </script>

    JavaScript代码:

            $("#files").kendoUpload({
                        multiple: true,
                        async: {
                            saveUrl: "save",
                            removeUrl: "remove",
                            autoUpload: false
                        },
                        select:function(e){
                            console.log("Select :: ",e.files);
                        },
                        template: kendo.template($('#fileTemplate').html())
                    });   
            function addExtensionClass(extension) {
                switch (extension) {
                    case '.jpg':
                    case '.img':
                    case '.png':
                    case '.gif':
                        return "img-file";
                    case '.doc':
                    case '.docx':
                        return "doc-file";
                    case '.xls':
                    case '.xlsx':
                        return "xls-file";
                    case '.pdf':
                        return "pdf-file";
                    case '.zip':
                    case '.rar':
                        return "zip-file";
                    default:
                        return "default-file";
                }
            }      

    效果图:

    参考地址:https://demos.telerik.com/kendo-ui/upload/index

    基本属性:

    directory  是否允许选择文件夹,默认为false
    directoryDrop  是否允许删除文件夹,默认为false,设置后仅允许你删除要上传的文件夹,无法上传文件 
    dropZone  初始化,提供拖放文件上传
    enable  是否禁用,默认true,如果要重新设置,使用enable()
    multiple  是否能选择多个文件,默认true,如果设为false,则每次只能选择一个文件
    showFileList  是否要禁用文件列表,默认为true,如果要自定义UI,可以设置为false
    template  用于呈现文件列表中的文件模板
    files  初始化的时候,在文件列表中呈现的文件,在设置了async时,该选项才可用,显示上传成功
    validation  验证,包含三个参数。allowedExtensions(允许的文件类型)、maxFileSize(最大文件大小,以字节为单位)、minFileSize(最小文件大小)
    async  异步上传
    localization  局部设置的(我没有用过)

    async:

    autoUpload  是否立即上传,可选的值:true、false     默认为true
    batch  是否批量上传,可选的值:true、false     默认false
    chunkSize  设置文件的大小,只有当batch为false时,才可用
    concurrent  是否批量上传,默认:false   只有当chunkSize设置时,该属性才能用
     autoRetryAfter  在多少毫秒之后,重复上传失败的文件
     maxAutoRetries  上传失败时,最大的尝试次数,设置了autoRetryAfter,才可用
     removeField  提交表单域的名称removeUrl
     removeUrl、saveUrl  移除文件的URL地址
     removeVerb  移除文件是,HTTP请求的方式(我理解的),默认:post
     saveField  提交表单域的名称saveUrl,默认是输入名称
     useArrayBuffer  默认:false   默认情况下,文件作为文件数据上传。如果设置为true,使用fileReader将文件作为文件缓冲区读取,此缓冲区在请求正文中发送。fileReader消耗了浏览器的内存。如果用户上传大文件,可能会消耗客户端的所有可用内存,甚至可能上传失败。
    withCredentials  默认为:true  控制是否为跨站点请求发送凭证
    async: {
         saveUrl: "save",
         removeUrl: "remove",
         autoUpload: true
    }

     

  • 相关阅读:
    选择本地照片之后即显示在Img中(客户体验)
    解决JQuery.ajax.post乱码问题
    浅析MVC模式与三层架构的区别01
    照片上传(缩略图实现)
    基于Netty的聊天系统(三)协议定制----消息篇
    基于Netty的聊天系统(二)协议定制----登录篇
    基于Netty的聊天系统(一)通讯原理篇
    Centos6.5下配置SVN服务器
    FreeMarker-TemplateLoader
    移动UI自动化-Page Objects Pattern
  • 原文地址:https://www.cnblogs.com/zsj-02-14/p/9316497.html
Copyright © 2020-2023  润新知