bootstrap fileinput插件使用说明 中文 编辑 删除预览 同步服务器

bootstrap-fileinput 中文文档:  http://www.mianshigee.com/tutorial/ruoyi/spilt.7.9d13d5720da9d371.md

表格引用与上文,但是对一些参数进行补充说明:Options 参考如下

属性类型默认值描述
languageString'en'多语言设置,使用时需提前引入locales文件夹下对应的语言文件,中文zh,引入语言文件必须放在fileinput.js之后
showCaptionBooleantrue是否显示被选文件的简介
showBrowseBooleantrue是否显示浏览按钮
showPreviewBooleantrue是否显示预览区域
showRemoveBooleantrue是否显示移除按钮
showUploadBooleantrue是否显示上传按钮
showCancelBooleantrue是否显示取消按钮
showCloseBooleantrue是否显示关闭按钮
showUploadedThumbsBooleantrue这个属性是基于这样一个使用方法的:选择若干个文件后点击右下角上传按钮批量上传,待全部完成后再选择一批文件,此时之前上传成功的文件是否要保存。就是这个属性控制的。注意,点击文件缩略图下面的上传按钮不会导致之前的成功上传的文件消失,即使这里设置了true
browseOnZoneClickBooleanfalse
autoReplaceBooleanfalse是否自动替换当前图片,设置为true时,再次选择文件, 会将当前的文件替换掉。
generateFileIdObjectnull
previewClassString添加预览按钮的类属性
captionClassString添加标题类属性
frameClassString'krajee-default'针对每个缩略图的框架
mainClassString'file-caption-main'针对元素类属性
mainTemplateObjectnull
purifyHtmlBooleantrue
fileSizeGetterObjectnull
initialCaptionString
initialPreviewArray/Object[]通过这个参数,我们可以为文件区设置一些默认的缩略图
initialPreviewDelimiterString'$$'
initialPreviewAsDataBooleanfalse
initialPreviewFileTypeString'image'
initialPreviewConfigArray/Object[]
initialPreviewThumbTagsArray/Object[]
previewThumbTagsObject{}
initialPreviewShowDeleteBooleantrue
removeFromPreviewOnErrorBooleanfalse
deleteUrlString删除图片时的请求路径
deleteExtraDataObject{}删除图片时额外传入的参数
overwriteInitialBooleantrue
previewZoomButtonIconsObject{prev: '',next: '',toggleheader: '',fullscreen: '',borderless: '',close: ''},
previewZoomButtonClassesObject{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'},
preferIconicPreviewBooleanfalse
preferIconicZoomPreviewBooleanfalse
allowedPreviewTypesundefinedundefined
allowedPreviewMimeTypesObjectnull
allowedFileTypesObjectnull接收的文件后缀,如['jpg', 'gif', 'png'],不填将不限制上传文件后缀类型
allowedFileExtensionsObjectnull指出带有哪些后缀名的文件才是被接受上传的,设置msgInvalidFileExtension可以个性化出现此错误时的错误信息
defaultPreviewContentObjectnull
customLayoutTagsObject{}
customPreviewTagsObject{}
previewFileIconString当文件无法被预览时出现在缩略图中的图标,默认是
previewFileIconClassString'file-other-icon'
previewFileIconSettingsObject{}可以将不同的后缀的文件有不同的缩略图图标
previewFileExtSettingsObject{}
buttonLabelClassString'hidden-xs'
browseIconString
browseClassString'btn btn-primary'指出了右下角选择按钮的样式。一般尽量不要用btn-sm和btn-lg,会和左边的输入框不协调
removeIconString删除按钮相关的属性
removeClassString'btn btn-default'
cancelIconString
cancelClassString'btn btn-default'
uploadIconString上传按钮相关的属性
uploadClassString'btn btn-default'
uploadUrlStringnull上传文件路径
uploadAsyncbooleantrue是否为异步上传
uploadExtraDataObject{}上传文件时额外传递的参数设置
zoomModalHeightnumber480
minImageWidthStringnull图片的最小宽度
minImageHeightStringnull图片的最小高度
maxImageWidthStringnull图片的最大宽度
maxImageHeightStringnull图片的最大高度
resizeImageBooleanfalse
resizePreferenceString'width'
resizeQualitynumber0.92
resizeDefaultImageTypeString'image/jpeg'
minFileSizenumber0单位为kb,上传文件的最小大小值
maxFileSizenumber0单位为kb,如果为0表示不限制文件大小
resizeDefaultImageTypenumber25600(25MB)
minFileCountnumber0表示同时最小上传的文件个数
maxFileCountnumber0表示允许同时上传的最大文件个数
validateInitialCountBooleanfalse
msgValidationErrorClassString'text-danger'
msgValidationErrorIconString
msgErrorClassString'file-error-message'
progressThumbClassString"progress-bar progress-bar-success progress-bar-striped active"
rogressClassString"progress-bar progress-bar-success progress-bar-striped active"
progressCompleteClassString"progress-bar progress-bar-success"
progressErrorClassString"progress-bar progress-bar-danger"
progressUploadThresholdnumber99
previewFileTypeString'image'预览文件类型,内置['image', 'html', 'text', 'video', 'audio', 'flash', 'object',‘other‘]等格式
elCaptionContainerStringnull
elCaptionTextStringnull设置标题栏提示信息
elPreviewContainerStringnull
elPreviewImageStringnull
elPreviewStatusStringnull
elErrorContainerStringnull
errorCloseButtonString×'
slugCallbackfunctionnull选择后未上传前 回调方法
dropZoneEnabledBooleantrue是否显示拖拽区域
dropZoneTitleClassString'file-drop-zone-title'拖拽区域类属性设置
fileActionSettingsObject{}设置预览图片的显示样式
otherActionButtonsString编码设置
textEncodingString'UTF-8'
ajaxSettingsObject{}
ajaxDeleteSettingsObject{}
showAjaxErrorDetailsBooleantrue

了解了基础属性后,了解下方法:事件Event说明。

方法名描述
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) {});
fileresetPossible values: http, https, ws, wss.
fileclear点击浏览框右上角X 清空文件前响应事件$("#fileinput").on("fileclear",function(event, data, msg){});
filecleared点击浏览框右上角X 清空文件后响应事件$("#fileinput").on("filecleared",function(event, data, msg){});
fileimageuploaded在预览框中图片已经完全加载完毕后回调的事件

事件案例:filepreremove  在删除前触发事件   fileremoved在删除触发事件 调用通过on调用

$("#fileinputid").on("fileremoved", function (event, key, key2, data) {
    getMeg();
});

 文件批量被选择后触发 (常用功能 选择完成后调用上传功能upload)。

  $("#fileinputid").on('filebatchselected', function (event, data) {

                $("#fileinputid").fileinput("upload");    //选择完成后主动上传

        }); 

自定义事件: 在源码定义位置使用self._raise('filepreremove', [id, ind]); 

filepremove 表示方法名   后面是参数数组 传两个参数 。无参数空数组即可。

对外可用方法:启用缩略图上删除功能方法 通过fileinput(方法名)启用

$("#fileinputid").fileinput('_initFileActions');//这行代码绑定删除remove事件的  无ajax  $("#fileinputid").fileinput('_initPreviewActions');//这行代码绑定删除delete事件的 ajax

 _initFileActions 是remove    _initPreviewActions 是delete 不一样 一般使用第一种

upload 方法 调用后上传选择的图片。 

clear 清除方法 清除非initpreview的文件

 reset  清除方法 清除所有文件  

如果要自定义方法 在FILEINPUT 下级定义任意方法 即可。_标识内部使用方法,没有_表示公开方法,当然内部方法也可以使用,但是不建议直接使用。

fileManager 保存的是选择上传或未上传的图片资源

清除initpreview的方法:清除previewCache.data.content 即可

获取FILEINPUT对象的方法 $("#inputid").data("fileinput") 获取。

$(this).data("fileinput").previewCache.data.content=[];

previewCache 存储初始化预览的数据包括配置文件在 data里面  

previewCache.unset(index)在缓存中删除指定索引数据 页面需要另外更新

initialPreviewConfig的作用是为preview补充说明 例如通过title字段 可以绑定到页面上方便识别

页面样式的初始化都是通过模板,具体可以查看代码_initTemplateDefaults 里面对所有模板进行了定义,也可以在上面修改增加自定义的字段 属性 例如增加 data-key="{datakey}"  后面对模板初始化时候  获取对应的datakey值 对其绑定替换 参考 previewMarkupTags  tTagBef1  和tTagBef2  

tTagBef2 比tTagBef1 增加了title字段  通过replaceTags 方法将模板里面的字段批量替换

refresh 刷新方法用于options 更新使用 但是注意  此方法仅仅能更新同名属性 ,如果是数组则合并(相同的合并 不同的放到一起 取并集) 这里强调下 通过refresh 更新initpreview 实现初始化显示图片的方法不可行,如果想从新初始化 需要先清空 然后在通过refresh 方法绑定initpreview图片列表。

注意如原图片预览有3个图片 想通过如下代码让预览图片变为1个,结果事与愿违,如果与原图片都不一样则实际显示4个 如果有重复则显示3个  无法显示1个  需要先清除reset 然后如下操作:

$("#kv-explorer").fileinput("refresh",{

              initialPreview:  [ "http://lorempixel.com/1920/1080/transport/1"] ,

           initialPreviewConfig:  [    {caption: "transport-1.jpg", size: 329892, width: "120px", url: "{$url}", key: 1}     ]

});

获取当前fileinput里面预览图片数量:$("#kv-explorer").fileinput('getFilesCount',bool);

1、bool为true 标识和initpreview算在内的所有图片数量 编辑时候判断好用

通过样式$(".file-preview-thumbnails").find('.file-preview-frame').length / 2;获取数量

2、bool为false 标识不包含初始化图片数量  用于知道当前预览上传选择的图片数量

研究源码的初衷目的是发现 删除预览和删除新上传在fileremoved 获取的 key参数不一致无法更新存储的input 图片列表数据,相同步单文件删除功能需要改造。

改造第一项:在_init 方法里面 判断refreshMode是刷新方法 在else 复制上面的几行代码下来即可

在refresh前增加了previewClear方法 清除options上的init属性

查看代码 init初始化的预览对象(红色框内)与上传(绿色框内)命名规则不一致,另外新上传的图片名与我们上传后的文件名(重命名)不一致,不方便处理,导致如果客户删除一个图片后,无法从数据存储中同步删除,所以第一步想法就是要统一命名,最少改动方法 就是新上传的自动更新到initpreview里面 如果删除 则通过删除前事件处理图片。

1、批量选择完自动上传   2、修改如上代码 可以调用previewClear后refresh属性options (完成同步) 3删除前处理  在模板处 image选用tTagBef1 title 存放图片路径作为识别属性。 在preremove里面增加  ititle=$frame.attr('title'); 定义 并修改 self._raise('filepreremove', [id, ind,ititle]);增加ititle传参数,4通过preremove事件on接收ititle 处理服务器数据  至此完成编辑单图片删除同步程序  可能比较繁琐 后续研究代码优化

通过学习 源码还是要认真看下的,大神写的代码还是很多值得借鉴的,另外学习可以看到很多文章上面没有的属性理解 、方法、事件等,方便更加简单的使用组件,也可以按照自己想法自定义组件。 我个人认为组件有些功能还不是很完善。

附加:fileinput 自己是不支持拖拽的,需要引用RubaXa 的插件sortable.js 才只是拖拽排序,官方案例带有。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Bootstrap fileinput插件是一个基于Bootstrap框架的文件上传插件,它可以让用户方便地上传文件并进行预览编辑删除等操作。该插件支持多种文件类型和上传方式,同时还提供了丰富的配置选项和事件回调函数,可以满足不同场景下的需求。使用插件可以大大简化文件上传的开发工作,提高用户体验。 ### 回答2: Bootstrap fileinput是一个基于jQuery的文件上传插件,它可以让用户快速地选择、预览、上传和管理本地计算机和远程服务器上的文件。该插件具有丰富的功能,包括多文件上传、图片和视频预览、自定义主题和样式、文件排序和搜索等。 使用Bootstrap fileinput,需要引入相应的CSS和JavaScript文件,并在HTML代码中添加必要的标签和属性。通过配置选项,可以调整插件的行为和外观,以满足不同的需求。例如,可以设置文件上传的URL和参数、限制上传文件的类型和大小、启用自动上传和文件预览等。 Bootstrap fileinput可以与各种后端技术和框架配合使用,包括PHP、ASP.NET、Java、Ruby on Rails等。通过调用相应的API,可以将上传的文件保存到服务器上,并执行其他后续操作,例如数据存储、图片处理和生成缩略图等。 总的来说,Bootstrap fileinput是一个强大、灵活和易于使用的文件上传插件,它可以帮助开发人员快速地实现文件上传功能,节省时间和精力。同时,它也提供了许多高级的选项和功能,可以满足不同的业务需求和用户体验。 ### 回答3: Bootstrap fileinput插件是一款非常热门的Bootstrap文件上传插件。它可以让用户非常方便地在Web应用程序中上传任何类型的文件。Bootstrap fileinput插件还提供了许多定制化选项,可以帮助您轻松地加入文件上传功能,同时也可以提升用户体验和Web应用程序的风格。 Bootstrap fileinput插件可以与jQuery结合使用,实现从本地文件系统加载和显示多种类型的文件,包括图像、音频、视频、PDF文件等。它还具有非常灵活的配置选项,可以让您轻松地控制文件上传的限制,如文件大小限制,文件类型限制等。此外,它还提供了可定制的UI和界面,可以让您的用户非常方便地上传文件。 Bootstrap fileinput插件还支持各种主流浏览器,包括Google Chrome、Mozilla Firefox、Apple Safari和Microsoft Edge。它的兼容性能确保几乎所有的用户都可以获得最佳的用户体验。 总的来说,Bootstrap fileinput插件是一款非常实用的Bootstrap文件上传插件,它可以帮助您更方便地在Web应用程序中添加文件上传功能,同时还可以提升用户体验和Web应用程序的风格。如果您需要在您的应用程序中实现文件上传功能,那么Bootstrap fileinput插件绝对是您的不二之选。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值