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:{
    width:"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: [
    { width: "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();
    });
     

fileinput 的总结的更多相关文章

  1. JS组件系列——Bootstrap文件上传组件:bootstrap fileinput

    前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签, ...

  2. 【Bootstrap-插件使用】Jcrop+fileinput组合实现头像上传功能

    作者:Dreawer链接:https://zhuanlan.zhihu.com/p/24465742来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者:梦游的龙猫(转 ...

  3. yii2组件之多图上传插件FileInput的详细使用

    作者:白狼 出处:http://www.manks.top/yii2_multiply_images.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...

  4. [Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能

    很久没有更新博客了,再不写点东西都烂了. 这次更新一个小内容,是两个插件的组合使用,实现头像上传功能. 业务需求: 头像上传功能,要对上传的文件进行剪切,且保证头像到服务器时必须是正方形的. 优化&l ...

  5. Python统计脚本行数(fileinput)

    __author__ = 'metasequoia' # -*- coding: utf-8 -*- import fileinput def Count(): count_num = 0 for l ...

  6. fileinput

    # -*- coding: utf-8 -*- __author__ = 'metasequoia' import fileinput def file_input(): for line in fi ...

  7. fileinput模块

    刚才练习的时候,报如下错误: AttributeError: module 'fileinput' has no attribute 'input',后来Google参考这篇文章https://mai ...

  8. safari 调用隐藏fileInput

    在safari上,用自定义按钮调用隐藏fileInput,注意点 1. event listener中,不要 return false2. 不要使用display:none,可使用 opacity:0 ...

  9. Pyhton 学习总结 21 :fileinput模块

    fileinput模块可以对一个或多个文件中的内容进行迭代.遍历等操作.该模块的input()函数有点类似文件readlines()方法,区别在于前者是一个迭代对象,需要用for循环迭代,后者是一次性 ...

  10. bootstrap fileinput 文件上传工具

    这是我上传的第二个plugin 首先第一点就是因为这个好看 符合bootstrap的界面风格 第二是可以拖拽(虽然我不常用这个功能 但是这样界面看起来就丰满了很多) 最后不得不吐槽这个的回发事件 我百 ...

随机推荐

  1. 在Webpack 5 中如何进行 CSS 常用配置?

    本文摘要:主要通过实操讲解运用Webpack 5 CSS常用配置的方法步骤 前文已谈到可以通过配置 css-loader 和 style-loader,使 webpack5 具有处理 CSS 资源的能 ...

  2. odoo14 重启服务后权限不见了

    1 Odoo14权限更新有两个地方: 2 一.你在编写xml权限记录的时候没有将noupdate设置为'1'这样导致你每次升级模块,你的权限都会重置一遍. 3 二.你在运行odoo-bin服务的时候, ...

  3. SpringBoot定时任务 - Spring自带的定时任务是如何实现的?有何注意点?

    通过前文我们基本梳理了定时任务体系:Timer和ScheduledExecutorService是JDK内置的定时任务方案,以及Netty内部基于时间轮实现的HashedWheelTimer,再到Qu ...

  4. 基于ABP的AppUser对象扩展

      在ABP中AppUser表的数据字段是有限的,现在有个场景是和小程序对接,需要在AppUser表中添加一个OpenId字段.今天有个小伙伴在群中遇到的问题是基于ABP的AppUser对象扩展后,用 ...

  5. fijkplayer问题反馈:暂停时拖动进度光标,在窗口模式与全屏模式间切换后,进度光标不能及时更新、正常跟进

    fijkplayer-0.8.4很优秀,造福苍生,非常感谢! 使用fijkplayer-0.8.4开发的过程中遇到以下问题,特此记录.提交上传:https://github.com/befovy/fi ...

  6. 大家都能看得懂的源码 - 如何封装 cookie/localStorage/sessionStorage hook?

    本文是深入浅出 ahooks 源码系列文章的第九篇,该系列已整理成文档-地址.觉得还不错,给个 star 支持一下哈,Thanks. 今天来看看 ahooks 是怎么封装 cookie/localSt ...

  7. 为什么各大厂自研的内存泄漏检测框架都要参考 LeakCanary?因为它是真强啊!

    请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...

  8. [SDR] GNU Radio 系列教程(一) —— 什么是 GNU Radio

    目录 1.GNU Radio 是什么 2.我为什么要用 GNU Radio 3.数字信号处理 3.1 一点信号理论 3.2 将数字信号处理应用于无线电传输 4.基于流程图的模块化数字信号处理方法 本文 ...

  9. Jsoup爬取网上数据完成翻译

    Jsoup使用 首先进入Jsoup下载jar包 然后打开IDEA创建一个普通的java项目 在项目结构里创建 lib 目录 但是我们这样并不能直接进行使用 需要添加路径 右键点击 然后添加路径 选择模 ...

  10. Vite+React搭建开发构建环境实践

    前言 使用 Vite 已经有两年了,期间使用它开发过单页面应用,也开发过浏览器扩展插件,对比日常工作中用到的 webpack 构建速度大幅提升,开发体验也好很多. 虽然相比于 webpack 来说简单 ...