文件上传控件bootstrap-fileinput的使用

1、插件下载地址:https://github.com/kartik-v/bootstrap-fileinput/ 下载后的压缩包解压文件夹内容如下:

  

 

 

        js:插件核心js代码,引用fileinput.min.js/fileinput.js即可,默认插件语言为英文,如需要中文需要引用js/locales/zh.js(其他语言引用相应的js文件)

  js/plugins:相关辅助插件,piexif.min.js(resize image插件)、sortable.js(初始化预览窗口缩略图排序插件)、purify.js(看说明是净化html代码用的,试了下没有搞明白具体有说明作用)

  css:插件核心css代码,fileinput.min.css/fileinput.css(核心css代码,引用任何一个)、fileinput-rtl.min.css/fileinput-rtl.css(选用这组css,文件选择框会和从右向左排列,即选择文件等相关按钮按钮在左边,文件框在右边)

  themes:主题,如需要插件主题样式可引用主题文件夹下的相应js和css文件

  查看示例:

    打开压缩包中的example/index.html或者访问http://plugins.krajee.com/file-basic-usage-demo查看示例。可根据示例的代码选择需要的控件代码使用。

2、代码引用

  需要引用jquery

  需要结合bootstrap使用,即页面需要引入bootstrap相关js和css文件

  引用fileinput.js 和css

  中文需要引用js/locales/zh.js

  需要主题样式时引用themes下相关文件夹中的js和css

  tips:最好以上按顺序引用,免得出现莫名其妙的问题,比如zh.js必须在fileinput.js后引用否则无效

二、使用示例

  1、基本用法,自动将一个普通的input框渲染成高大上的文件上传选择框:

<input id="f_upload" type="file" class="file" />

  只需要将class设置为file即可,效果如下:

 

  2、隐藏文件预览窗口

  

<input id="input-1a" type="file" class="file" data-show-preview="false">

  设置属性:data-show-preview=“false”,等同于初始化属性:showPreview:false

       效果如下:

  3、使用input 属性和data-**属性创建多样化的文件上传框

  

<input id="input-2" name="input2" type="file fileloading" class="file" multiple readonly="false" disabled="false"  data-show-upload="false" data-show-caption="true" data-show-preview="true" data-allowed-file-extensions='["jpg","png"]'>

  属性说明:

    type="file fileloading" file表示此input框将被渲染为文件上传控件,fileloading在选择文件后产生预览前会有友好的转圈的loading提示(文件选择多了后比较容易观察到)

    multiple:标识可以文件多选

    readonly/disabled:这个不用解释了噻

         data-show-upload:等同于属性showUpload,显示上传按钮,同理有data-show-remove、data-show-cancel等详见option

    data-show-caption:显示文件上传的简介

    data-allowed-file-extensions:允许的文件后缀名,另外有data-allowed-file-types详见option

    .........

三、option选项说明:

属性名

属性类型

描述说明

默认值

language

String

多语言设置,使用时需提前引入\locales文件夹下对应的语言文件,

中文zh,引入语言文件必须放在fileinput.js之后

'en'

showCaption

Boolean

是否显示被选文件的简介

true

showBrowse

Boolean

是否显示浏览按钮

true

showPreview

Boolean

是否显示预览区域

true

showRemove

Boolean

是否显示移除按钮

true,

showUpload

Boolean

是否显示上传按钮

true,

showCancel

Boolean

是否显示取消按钮

true,

showClose:

Boolean

是否显示关闭按钮

true

showUploadedThumbs

Boolean

 

true

browseOnZoneClick

Boolean

 

false

autoReplace

Boolean

是否自动替换当前图片,设置为true时,再次选择文件,

会将当前的文件替换掉。

false

generateFileId

Object

 

null

previewClass

String

添加预览按钮的类属性

‘’

captionClass

String

 

‘’

frameClass

String

 

'krajee-default'

mainClass

String

 

'file-caption-main'

mainTemplate

Object

 

null

purifyHtml

Boolean

 

true

fileSizeGetter

Object

 

null

initialCaption

String

 

''

initialPreview

Array/Object

 

[]

initialPreviewDelimiter

String

 

'*$$*'

initialPreviewAsData

Boolean

 

false

initialPreviewFileType

String

 

'image'

initialPreviewConfig

Array/Object

 

[]

initialPreviewThumbTags

Array/Object

 

[]

previewThumbTags

Object

 

{}

initialPreviewShowDelete

Boolean

 

true

removeFromPreviewOnError

Boolean

 

false

deleteUrl

String

删除图片时的请求路径

''

deleteExtraData

Object

删除图片时额外传入的参数

{}

overwriteInitial

Boolean

 

true

previewZoomButtonIcons

Object

 

{

prev: '<i class="glyphicon glyphicon-triangle-left"></i>',

  next: '<i class="glyphicon glyphicon-triangle-right"></i>',

  toggleheader: '<i class="glyphicon glyphicon-resize-vertical"></i>',

  fullscreen: '<i class="glyphicon glyphicon-fullscreen"></i>',

  borderless: '<i class="glyphicon glyphicon-resize-full"></i>',

  close: '<i class="glyphicon glyphicon-remove"></i>'

},

previewZoomButtonClasses

Object

 

prev: 'btn btn-navigate',

  next: 'btn btn-navigate',

  toggleheader: 'btn btn-default btn-header-toggle',

  fullscreen: 'btn btn-default',

  borderless: 'btn btn-default',

  close: 'btn btn-default'

},

preferIconicPreview

Boolrean

 

false

preferIconicZoomPreview

Boolrean

 

false

allowedPreviewTypes

undefined

 

undefined

allowedPreviewMimeTypes

Object

 

null

allowedFileTypes

Object

接收的文件后缀,如['jpg', 'gif', 'png'],不填将不限制上传文件后缀类型

null

allowedFileExtensions

Object

 

null

defaultPreviewContent

Object

 

null

customLayoutTags

Object

 

{}

customPreviewTags

Object

 

{}

previewFileIcon

String

 

'<i class="glyphicon glyphicon-file"></i>'

previewFileIconClass

String

 

'file-other-icon'

previewFileIconSettings

Object

 

{}

previewFileExtSettings

Object

 

{}

buttonLabelClass

String

 

'hidden-xs'

browseIcon

String

 

'<i class="glyphicon glyphicon-folder-open"></i>&nbsp;'

browseClass

String

 

'btn btn-primary'

removeIcon

String

 

'<i class="glyphicon glyphicon-trash"></i>'

removeClass

String

 

'btn btn-default'

cancelIcon

String

 

'<i class="glyphicon glyphicon-ban-circle"></i>'

cancelClass

String

 

'btn btn-default'

uploadIcon

String

 

'<i class="glyphicon glyphicon-upload"></i>'

uploadClass

String

 

'btn btn-default'

uploadUrl

String

上传文件路径

null

uploadAsync

boolean

是否为异步上传

true

uploadExtraData

 

上传文件时额外传递的参数设置

{}

zoomModalHeight

number

 

480

minImageWidth

String

图片的最小宽度

null

minImageHeight

String

图片的最小高度

null

maxImageWidth

String

图片的最大宽度

null

maxImageHeight

String

图片的最大高度

null

resizeImage

boolean

 

false

resizePreference

String

 

'width'

resizeQuality

number

 

0.92

resizeDefaultImageType

String

 

'image/jpeg'

minFileSize

number

单位为kb,上传文件的最小大小值

0

maxFileSize

number

单位为kb,如果为0表示不限制文件大小

0

resizeDefaultImageType

number

 

25600(25MB)

minFileCount

number

表示同时最小上传的文件个数

0

maxFileCount

number

表示允许同时上传的最大文件个数

0

validateInitialCount

boolean

 

false

msgValidationErrorClass

String

 

'text-danger'

msgValidationErrorIcon

String

 

'<i class="glyphicon glyphicon-exclamation-sign"></i> '

msgErrorClass

String

 

'file-error-message'

progressThumbClass

String

 

"progress-bar progress-bar-success progress-bar-striped active"

rogressClass

String

 

"progress-bar progress-bar-success progress-bar-striped active"

progressCompleteClass

String

 

"progress-bar progress-bar-success"

progressErrorClass

String

 

"progress-bar progress-bar-danger"

progressUploadThreshold

number

 

99

previewFileType

String

预览文件类型,内置['image', 'html', 'text', 'video', 'audio', 'flash', 'object',‘other‘]等格式

'image'

elCaptionContainer

String

 

null

elCaptionText

String

设置标题栏提示信息

null

elPreviewContainer

String

 

null

elPreviewImage

String

 

null

elPreviewStatus

String

 

null

elErrorContainer

String

 

null

errorCloseButton

String

 

'<span class="close kv-error-close">&times;</span>'

slugCallback

String

 

null

dropZoneEnabled

boolean

是否显示拖拽区域

true

dropZoneTitleClass

String

拖拽区域类属性设置

'file-drop-zone-title'

fileActionSettings

Object

 

{}

otherActionButtons

String

 

''

textEncoding

String

编码设置

'UTF-8'

ajaxSettings

Object

 

{}

ajaxDeleteSettings

Object

 

{}

showAjaxErrorDetails

boolean

 

true

7、Method说明:

方法名

参数

描述

fileerror

 

异步上传错误结果处理

$('#uploadfile').on('fileerror', function(event, data, msg) {

});

fileuploaded

 

异步上传成功结果处理

$("#uploadfile").on("fileuploaded", function (event, data, previewId, index) {

})

filebatchuploaderror

 

同步上传错误结果处理

$('#uploadfile').on('filebatchuploaderror', function(event, data, msg) {

});

filebatchuploadsuccess

 

同步上传成功结果处理

$('#uploadfile').on('filepreupload', function(event, data, previewId, index) {    

});

filebatchselected

 

选择文件后处理事件

$("#fileinput").on("filebatchselected", function(event, files) {

});

upload

 

文件上传方法

$("#fileinput").fileinput("upload");

fileuploaded

 

上传成功后处理方法

$("#fileinput").on("fileuploaded", function(event, data, previewId, index) {

});

filereset

 

 

fileclear

 

点击浏览框右上角X 清空文件前响应事件

$("#fileinput").on("fileclear",function(event, data, msg){

});

filecleared

 

点击浏览框右上角X 清空文件后响应事件

$("#fileinput").on("filecleared",function(event, data, msg){

});

fileimageuploaded

 

在预览框中图片已经完全加载完毕后回调的事件

 

8、常见问题与错误

   引入所需文件后页面刷新查看样式奇怪,浏览器提示错误等,可能是因为js、css文件的引用顺序问题,zh.js需要在fileinput.js后面引入。bootstrap最好在fileinput前引入。

原文链接:https://www.cnblogs.com/parker-yu/p/7207071.html

 

转载于:https://www.cnblogs.com/1175429393wljblog/p/8510888.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在JPA 2.1中使用@Convert正确完成映射枚举

如果您曾经在JPA中使用过Java枚举&#xff0c;那么您肯定会意识到它们的局限性和陷阱。 使用enum作为Entity的属性通常是一个很好的选择&#xff0c;但是2.1之前的JPA不能很好地处理它们。 它给了您2 1个选择&#xff1a; 托肖夫达林 Enumerated(EnumType.ORDINAL) &#xf…

python里orient_OrientDB Python连接操作

OrientDB Python连接操作Python的OrientDB驱动程序使用二进制协议。 PyOrient是git hub项目名称&#xff0c;它用于将OrientDB与Python连接起来并操作数据。 它适用于OrientDB 1.7及更高版本。以下命令用于安装PyOrient。pip install pyorient可以使用名为demo.py的脚本文件执行…

HTML5-画布(canvas)效果之-渐变色

<!DOCTYPE HTML><html><head> <title>渐变色</title></head><body> <canvas id"canvas" width"200" height"100" style"background-color: rgb(222, 222, 222)"> 您的浏…

ssh架构之hibernate(一)简单使用hibernate完成CRUD

1.Hibernate简介 Hibernate是一个开放源代码的对象关系映射(ORM)框架&#xff0c;它对JDBC进行了非常轻量级的对象封装&#xff0c;它将POJO与数据库表建立映射关系&#xff0c;是一个全自动的orm框架&#xff0c;hibernate可以自动生成SQL语句&#xff0c;自动执行&#xff0c…

使用AspectJ审计Spring MVC Webapp。 第1部分

如果您像我一样&#xff0c;那么您将拥有那种编程天&#xff0c;一切似乎都进展顺利。 您编写代码和测试&#xff0c;它就可以正常工作。 然后还有其他日子&#xff0c;非常糟糕的日子&#xff0c;在那儿&#xff0c;您知道所编写的所有内容都尽可能正确&#xff0c;并且代码拒…

GitHub注册和Git安装

一、注册GitHub GitHub官方地址&#xff1a;https://github.com。 在浏览器中打开GitHub网址&#xff0c;通过首页进行注册&#xff0c;如下图所示。 二、安装Git Git官方下载地址&#xff1a;http://git-scm.com/download/。 Git支持多平台&#xff08;Mac OS X/Windows/Linux…

django mysql迁移_关于django 数据库迁移(migrate)应该知道的一些事

命令首先数据库迁移的两大命令&#xff1a;python manage.py makemigrations & python manage.py migrate前者是将model层转为迁移文件migration&#xff0c;后者将新版本的迁移文件执行&#xff0c;更新数据库。这两中命令调用默认为全局&#xff0c;即对所有最新更改的mo…

如何存储和恢复 HTML5 Canvas 状态

当我们在 HTML5 Canvas 上使用其 2D 上下文进行图形绘制的时候&#xff0c;可以通过操作 2D 上下文的属性来绘制不同风格的图形&#xff0c;例如不同字体、填充等等。 通常情况下&#xff0c;在画布上的绘图时&#xff0c;您需要更改在绘制的2D背景下的状态。例如&#xff0c;你…

通过JNI使用C ++尖叫快速进行Lucene搜索

一天结束时&#xff0c;Lucene执行查询时&#xff0c;在初始设置后&#xff0c;真正的热点通常是相当基本的代码&#xff0c;它解码整数docID&#xff0c;术语频率和位置的顺序块&#xff0c;并对其进行匹配&#xff08;例如&#xff0c;对BooleanQuery并集或交集&#xff09;&…

“我们应当怎样做需求分析”——大纲卷

这是一篇关于怎么进行软件需求分析的文章&#xff0c;读完的第一个感觉就是累。真的是特别累&#xff0c;我大概估计了一下&#xff0c;得有40000个字。不过读完之后还是有一点收获的。下面是一个大概的内容。 一.需求调研阶段 初识1.在客户组织的第一场见面会上&#xff0c;保…

动态语言

这是动态语言和静态语言&#xff08;例如Java&#xff09;最大的差别之一。动态语言调用实例方法&#xff0c;不检查类型&#xff0c;只要方法存在&#xff0c;参数正确&#xff0c;就可以调用。 %d:输入输出中的格式控制,以整数的形式输入输出.%f:输入输出中的格式控制,以小数…

innodb和my查询速度_吃透MySQL:MyISAM和InnoDB存储引擎详细介绍

一&#xff0c;MySQL基本架构MySQL基础架构可以分为两大类&#xff1a;Server层和存储引擎层。Server层&#xff1a; Server层涵盖了MySQL大部分核心业务功能&#xff0c;并且所有存储引擎的功能都在这一层实现。存储引擎层&#xff1a;存储引擎有很多&#xff0c;各自有着各自…

Java EE EJB拦截器教程和示例

在此示例中&#xff0c;我们将看到如何在EJB中使用拦截器并使用简单的Web应用程序对其进行测试。 1.简介 顾名思义&#xff0c;当您想拦截对EJB方法的调用时&#xff0c;将使用拦截器。 如果为Bean声明一个拦截器&#xff0c;则每次调用该Bean的方法时&#xff0c;该拦截器的一…

HTML5结合ajax实现文件上传以及进度显示

基于原生html5实现&#xff0c;不需要falsh支持&#xff0c;进度可以自定义显示&#xff0c;控制灵活&#xff0c; 本来打算使用jquery插件进行异步文件上传&#xff0c;比如uploadfy但是需要额外的支持&#xff0c;也有人用iframe模仿异步上传机制&#xff0c;感觉都比较别扭。…

Mac python Tesseract 验证码识别

Tesseract 简介 Tesseract(/tesərkt/) 这个词的意思是"超立方体"&#xff0c;指的是几何学里的四维标准方体&#xff0c;又称"正八胞体"。不过这里要讲的&#xff0c;是一款以其命名的开源 OCR(Optical Character Recognition, 光学字符识别) 软件。 所谓…

构建器模式:适用于代码,适用于测试

我发现生成器设计模式偶尔在代码中有用&#xff0c;但在测试中经常有用。 本文简要概述了该模式&#xff0c;然后介绍了在测试中使用该模式的一个有效示例。 请参阅github中的代码。 生成器模式的背景 根据GoF的书 &#xff0c;构建器设计模式用于“将复杂对象的构造与其表示分…

如何判断html页面停止滚动?

写在开始的话 查遍的文献&#xff0c;没有找到js或者jquery定义好的方法可用&#xff0c;最后迫不得已自己写了个方法。&#xff08;如果哪位同学知道有其他方法&#xff0c;欢迎讨论&#xff09; 代码 var count_index 0;$(window).scroll(function(e) {if(count_index 0) {…

HTML5教程之-文件拖拽功能实现

现在打开优酷的网站我们再观看视频时如果拖动滚动条&#xff0c;页面会自动出现一个小的播放窗口&#xff0c;而这个播放窗口是可以说随便拖拽的。这种对图片或者链接的拖拽效果是怎么实现的&#xff1f;其实用HTML5就很容易实现了&#xff0c;因为HTML5中有个html5中默认对图片…

php 打乱数组顺序_PHP实现大转盘抽奖算法

php中文网最新课程每日17点准时技术干货分享本文通过具体的实例向大家介绍了PHP语言实现大转盘抽奖算法&#xff0c;希望对大家学习PHP抽奖有所帮助。流程&#xff1a;1.拼装奖项数组&#xff1b;2.计算概率&#xff1b;3.返回中奖情况。代码如下&#xff1a;中奖概率 v 可以…

linux线程基础篇----线程同步与互斥

linux线程基础----线程同步与互斥 一、同步的概念 1.同步概念 所谓同步&#xff0c;即同时起步&#xff0c;协调一致。不同的对象&#xff0c;对“同步”的理解方式略有不同。如&#xff0c;设备同步&#xff0c;是指在两个设备 之间规定一个共同的时间参考&#xff1b;数据库同…