• fileInput实战总结


    fileinput组件实战总结

    fileinput是一个增强的基于Bootstrap3.x和HTML5的文件上传工具,具备多种格式文件的预览功能,
    另外,它包含了基于AJAX的上传,拖拽和撤销文件,可以显示上传文件的进度,并且可以任意去预览,
    添加,删除文件。

    在本系统使用的功能

    机构或银行图标的预览功能

    使用fileinput

    如果要使用fileinput组件,需要引入相应的css和js文件

    • 引入css文件
     <link rel="stylesheet" href="/genius/static/plugins/fileInput/fileinput.css">
    
    • 引入js文件
    <script src="/genius/static/plugins/fileInput/fileinput.js"></script>
    <script src="/genius/static/plugins/fileInput/zh.js"></script>//汉化文件
    
    • html初始化

    将input输入框的type设置为file,同时设定一个id。

    <div class="col-sm-8">
       <input type="file" id="input-2" class="form-control" placeholder="" name="license">
    </div>
    
    • js初始化简介
     $('#input-2').fileinput({
        fileinputLocales: 'zh',   //设置语言
        allowedFileExtensions : ['jpg', 'png','gif','jpeg'],//接收的文件后缀
        showUpload: false,        //是否显示上传按钮
        removeLabel: '移除',
        showCaption: false,       //是否显示标题
        showRemove:false,         //是否显示移除按钮
        showClose:false,          //是否显示关闭按钮
        showPreview:true,         //是否显示预览功能
        maxFileSize: 4096,        //设置最大的上传字节
        browseClass: "btn btn-primary", //按钮样式  
        enctype: 'multipart/form-data',           
        previewFileIcon: "<i class='glyphicon glyphicon-king'></i>", 
        fileSingle: '文件',
        filePlural: '个文件',
        browseLabel: '选择 &hellip;',
        removeLabel: '移除',
        removeTitle: '清除选中文件',
        overwriteInitial: true,
        autoReplace :true,
        initialPreview: [                          
        'http://'+dataImgUrl+'?r='+Math.random(),
        ],
        previewSettings:{
            "100%",
        },
        initialPreviewAsData: true, // identify if you are sending preview data only and not the raw markup
        initialPreviewFileType: 'image', // image is the default and can be overridden in config below
        initialPreviewConfig: [
            {  "100%",},
        ],
    
        });
    

    使用过程中所遇到的问题

    • form表单的编码类型

      因为使用了input[type=file],一定要注意form表单要声明编码类型为enctype="multipart/form-data"。

    • 当input的class中有file时会导致初始化错误

      如果将使用了fileinput初始化的input输入框的class设置为file的话,fileinput对于该输入框的设置无效。

    • 当在页面中打开多个fileinput初始化后的input时,存在fileinput输入框的缓存问题。在项目机构管理处应用时,

      在机构列表中点击每一个机构都可以查看此机构的详情-当然包括营业执照和签署协议的详情。当我们点击了机构1的详情,
      fileinput初始化了模态框中的图片预览。当我们关闭机构1的详情,再去打开机构2的详情框时,显示的预览图片还是
      机构1的,这时对于input的二次初始化就不起作用了。这时的解决方法是手动操作dom,手动设置image的src属性。
      代码如下:

    $('.file-preview-image').each(function (){
        this.src= 'http://'+dataImgUrl+'?t='+new Date().getTime();
    });
    
  • 相关阅读:
    JVM体系结构之五:本地方法栈
    netty中的ByteBuf
    AtomicLong和LongAdder的区别
    Python介绍
    netty支持的协议
    spring扩展点之四:Spring Aware容器感知技术,BeanNameAware和BeanFactoryAware接口,springboot中的EnvironmentAware
    Netty组件
    《深入Java虚拟机学习笔记》- 第9章 垃圾收集
    《深入Java虚拟机学习笔记》- 第8章 连接模型
    netty中的EventLoop和EventLoopGroup
  • 原文地址:https://www.cnblogs.com/blackgan/p/6800643.html
Copyright © 2020-2023  润新知