关于Bootstrap File input插件
2016-09-21 17:22
369 查看
关于Bootstrap File input插件
最近因项目需求用到这个插件,开发过程中查资料花费了大量时间,因此总结使用方法下来防止再次使用时遗忘。相关文档:Github地址、插件文档、DEMO
插件引入说明
<script type="text/javascript" src="/bootstrap-fileinput/js/fileinput.min.js"></script> <script type="text/javascript" src="/bootstrap-fileinput/js/locales/zh.js"></script> <script type="text/javascript" src="/bootstrap-fileinput/js/plugins/sortable.min.js" ></script> <!-- 排序时使用到,如不需要对图片进行排序,可以不加 --> <script type="text/javascript"><{include file="../statics/js/others/fileinput_userinfo.js"}></script>
开发DEMO
1.HTML
<!-- HTML --> <div class="form-group"> <label for="awards" class="col-sm-2 control-label">获奖情况</label> <div class="col-sm-9"> <input type="file" id="awards" name="awards" multiple> <div id="divawards" class="piclist" style=" margin:10px 0px;"> <{if $awards}> <{foreach from=$awards item=list name=album}> <input type="hidden" name="info[awards][{$list.id}][award_img]" value="{$list.award_img}" id="awards_{$list.id}"> <{/foreach}> <{/if}> </div> <!-- JS函数引用 --> <script type="text/javascript" charset="utf-8" async defer> initFileInput("awards", "public_ajax_upload?id=awards", "public_del_awards?"); initPortrait("awards"); </script> </div> </div>
2.JavaScript
//初始化fileinput控件(第一次初始化) function initFileInput(ctrlName,uploadUrl,deleteUrl){ var control = $('#' + ctrlName); control.fileinput({ language: 'zh', uploadUrl: "/usercenter/userinfo/" + uploadUrl, //上传路径 deleteUrl: "/usercenter/userinfo/" + deleteUrl, //删除路径 enctype: 'multipart/form-data', // maxFileCount: 1, //最大允许上传数量 dropZoneEnabled: false, //是否显示拖拽区域 showCaption: false, //是否显示标题 showUpload: true, //是否显示上传按钮 showRemove:false, resizeImage: true, }).on('fileuploaded',function(event,data,key){ if (data.response.is_success == true) { //上传成功操作事件(删除旧的服务器图片,修改数据库) } else { alert("上传出错!"); } }).on('filepredelete', function(event, key) { //删除前事件 if (!confirm('确定删除该文件?')) { ctrlName.fileinput('cancel'); //终止操作 } }).on('filedeleted', function(event, key, data) { //删除后事件 //删除操作事件(删除服务器图片,修改数据库) }).on('filesuccessremove', function(event, id, key) { //移除上传事件 //先上传图片后直接删除图片,未进行提交操作 }) } //初始化图像信息,可针对不同控件进行设置 function initPortrait(ctrlName) { var control = $('#' + ctrlName); switch(ctrlName){ case "awards": var footerTemplate = '<div class="file-thumbnail-footer">\n' + ' <div style="margin:5px 0">\n' + ' <input class="kv-input kv-new form-control input-sm text-center {TAG_CSS_NEW}" name="info[insert_awards_des][][award_describe]" value="{caption}" placeholder="输入获奖详情" {NEW_SHOW}>\n' + ' <input class="kv-input kv-init form-control input-sm text-center {TAG_CSS_INIT}" name="info[awards][{width}][award_describe]" value="{TAG_VALUE}" key="{width}" placeholder="Enter caption..." {INIT_SHOW}>\n' + ' </div>\n' + ' {size}\n' + ' {actions}\n' + '</div>'; //重要,需要更新控件的附加参数内容,以及图片初始化显示 control.fileinput('refresh', { maxFileSize: 10485760, maxImageWidth: 260, maxImageHeight: 180, allowedFileExtensions : ['jpg', 'jpeg', 'png', 'gif', 'ico'],//接收的文件后缀 overwriteInitial: false, layoutTemplates: {footer: footerTemplate, size: '<samp><small>({sizeText})</small></samp>'}, //设置填写的图片备注 //初始化图片 initialPreview: [ {if $awards} {foreach from=$awards item=list name=album} '{$list.award_img}', {/foreach} {/if} ], initialPreviewAsData: true, initialPreviewConfig: [ {if $awards} {foreach from=$awards item=list name=album} {caption: "<{$list.award_describe}>", width: "{$list.id}", key: {$list.id}}, {/foreach} {/if} ], //新增图片的input控件配置 previewThumbTags: { '{TAG_VALUE}': '', // no value '{TAG_CSS_NEW}': '', // new thumbnail input '{TAG_CSS_INIT}': 'hide', // hide the initial input '{INIT_SHOW}': 'disabled' }, //初始化图片的input控件配置 initialPreviewThumbTags: [ {if $awards} {foreach from=$awards item=list name=album} {'{TAG_VALUE}': '{$list.award_describe}', '{TAG_CSS_NEW}': 'hide', '{TAG_CSS_INIT}': '', '{NEW_SHOW}': 'disabled'}, {/foreach} {/if} ], }); break; } }
预览
注意
input 按钮必须要有 multiple,否则无法多图上传,而且上传第二张图片时,第一张图片会被覆盖;
<input type="file" id="awards" name="awards" multiple>
相关文章推荐
- bootstrap 文件上传插件 fileinput.min.js 可以预览图片
- Bootstrap文件上传插件File Input的使用
- 关于bootstrap fileupload.js上传插件的使用之一
- bootstrap fileinput 上传插件
- BootStrap FileInput 插件上传使用
- 基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
- Bootstrap的fileinput插件实现多文件上传的方法
- bootstrap-fileinput插件学习
- bootstrap上传插件fileinput自动上传&成功回调
- Bootstrap -- 文件上传插件File Input的使用
- php 应用 bootstrap-fileinput 上传文件 插件 操作的方法
- Bootstrap的fileinput插件实现多文件上传的方法
- 基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用
- Bootstrap FileInput多文件上传插件使用详解(包括Java代码)
- Bootstrap文件上传插件File Input的使用
- bootstrap-fileinput 插件使用总结(最近做项目应用到了这个上传文件的插件,分享下不够完善请指出共同进步)
- bootstrap 上传图片插件 file-input 的简单使用
- BootStrap使用file-input插件上传图片的方法
- Bootstrap文件(图片)上传插件File Input进阶使用说明
- 基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用