下咋以及一些具体使用过程就不叙述了,简单说一下使用时候需要注意的几点

1.在js中封装好的fileinput函数

/*
* 初始化fileInput控件(第一次初始化)
* type 不同类别
* initValue 初始化图片值 多图以,分割
* item_num 调用fileinput的元素
*/
function initFileInput(item_num, type, initValue) {
var control;
var idName;
var uploadUrl;
var initUrls;
var maxFileCount;
var initialPreviewConfig = []; if (initValue != undefined) {
initUrls = initValue.split(",");
for (var i = 0; i < initUrls.length; i++) {
initialPreviewConfig.push({
caption: 'default' + (i + 1) + '.jpg',
downloadUrl: initUrls[i],
key: i + 1
});
}
}
if (type == 0) {
idName = "#snap_img-" + item_num;
maxFileCount = 6;
control = $(idName);
uploadUrl = "http://wadev.mydaydream.com:9081/product/idea-upload";
} else if(type == 1){
idName = "#addImg-" + item_num;
maxFileCount = 1;
control = $(idName);
uploadUrl = "http://wadev.mydaydream.com:9081/product/idea-upload";
} else{
idName = "#travelInput" + item_num;
maxFileCount = 1;
control = $(idName);
uploadUrl = "http://wadev.mydaydream.com:9081/product/idea-upload";
}
var imgUrl = ''; //每一个上传图片的回调地址
control.fileinput({
initialPreview: initUrls,
initialPreviewAsData: true,
overwriteInitial: false,
language: 'zh', //设置语言
uploadUrl: uploadUrl, //上传的地址(访问接口地址)
allowedFileExtensions: ['jpg', 'gif', 'png' , 'jpeg'],//接收的文件后缀
//uploadExtraData:{"id": 1, "fileName":'123.mp3'},
uploadAsync: true, //默认异步上传
showUpload: false, //是否显示上传按钮
showRemove: false, //显示移除按钮
showPreview: true, //是否显示预览
showCaption: true,//是否显示标题
browseClass: "btn btn-primary", //按钮样式
deleteUrl: "/product/delete-image",
dropZoneEnabled: false,//是否显示拖拽区域
//minImageWidth: 50, //图片的最小
//minImageHeight: 50,//图片的最小高度
//maxImageWidth: 1000,//图片的最大宽度
//maxImageHeight: 1000,//图片的最大高度
//maxFileSize: 0,//单位为kb,如果为0表示不限制文件大小
maxFileCount: maxFileCount, //表示允许同时上传的最大文件个数
enctype: 'multipart/form-data',
validateInitialCount: true,
initialPreviewConfig: initialPreviewConfig,
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
})
.on("filebatchselected", function (event, files) { //默认上传
$(this).fileinput("upload");
})
.on("fileuploaded", function (event, data) { //上传回调事件
imgUrl = data.response.initialUrl;
if (type == 0) { //对于不同类别分别进行处理 } else if (type == 1) { } else if (type == 2) { }
})
.on('filesuccessremove', function (event, key) { //删除回调事件
if (type == 0) { //旅行快照
removeSnapImage(key);
} else if (type == 1) { //设计理念
removeIdeaImage(idName);
} else if(type == 2){ //行程安排
removeIdeaImage(idName);
}
})
.on('filedeleted', function (event, key) { //初始化图片删除事件
if (type == 0) { //对于不同类别分别进行处理
removeSnapImage(key);
} else if (type == 1) { } else if(type == 2){ }
})
;
}

2.php中调用fileinput函数

  <?php if (!$model->isNewRecord) { ?>
<?= $form->field($model, 'poster')->label('海报')->widget(
FileInput::className(), [
'options' => ['multiple' => false, 'accept' => 'image/*'],
'pluginOptions' => [
'initialPreview' => $postInitImage,
'initialPreviewAsData' => true,
'initialPreviewConfig' => $postInitImageCfg,
'previewFileType' => 'image',
'overwriteInitial' => true,
'showRemove' => true,
'showUpload' => false,
'uploadUrl' => Url::to(['poster-upload']),
'uploadExtraData' => [
'product_id' => $model->id,
],
],
"pluginEvents" => [ 回调函数分装在这里
"filebatchselected" => "function(){ $(this).fileinput(\"upload\");}" 图片自动上传
]
]
) ?>
<?php } ?>

附上fileinput官网:http://plugins.krajee.com/file-input

php对于fileinput的使用:http://demos.krajee.com/widget-details/fileinput

fileinput使用心得的更多相关文章

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

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

  2. bootstrap fileinput 文件上传

    最近因为项目需要研究了下bootstrap fileinput的使用,来记录下这几天的使用心得吧. 前台html页面的代码 <form role="form" id=&quo ...

  3. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  4. NoSql数据库使用半年后在设计上面的一些心得

    NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...

  5. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  6. 我的MYSQL学习心得(三) 查看字段长度

    我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  7. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

  8. 我的MYSQL学习心得(五) 运算符

    我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  9. 我的MYSQL学习心得(六) 函数

    我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

随机推荐

  1. thinkphp url模式

    入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块.控制器和操作: http://serverName/index.php/模块/控制器/操作 这是 ...

  2. SSM14-通过AOP实现日志记录

    1.要求使用AOP思想,实现对每一个用户登陆后,将以下信息保存在数据库 1>登陆时间 2>退出时间 3>登录的IP地址 4>访问点URL(访问了那些Controller) 5& ...

  3. myeclipse CTRL+1功能

    有时候,在myeclipse或者eclipse中自动编译代码有错误,我们把鼠标放在错误一行能够自动显示出问题原因,但是有时显示问题让人有些匪夷所思,不知所云何物. 此时可以使用<ctrl> ...

  4. 在select标签中添加a标签

    <!--第一个选项不能写连接--> <select id="" onchange="window.location=this.value"&g ...

  5. 软件-开发软件:Android Studio

    ylbtech-软件-开发软件:Android Studio Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT, ...

  6. windows系统下jupyter notebook使用虚拟环境

    目录 [亲测好使]windows系统下jupyter notebook使用虚拟环境 在虚拟环境中安装jupyter,并添加到jupyter kernel 参考 [未测试,但觉得比上面那方法好,因为上面 ...

  7. Stern-Brocot Tree、伪.GCD 副本

    Stern-Brocot Tree.伪.GCD 副本 伪.GCD 问题 1:\(f(a,b,c,n) = \sum_{i=0}^{n} [\frac{ai+b}{c}]\) Case 1: \(a\g ...

  8. java_static关键字

    /** * static关键字:静态关键字 * 静态优先于非静态加载到内存中(静态优先于对进入到内存中) * 被static修饰的成员变量不能被序列化的,序列化的都是对象 * transient关键字 ...

  9. Hadoop 2.x 版本中的依赖 jar

  10. [NOIP2019模拟赛]序列(Sequence)

    题目大意 有一个序列$A_i$ • 对于 i ≥ 1,如果有$ A_i > 0.A_{i+1}> 0$ 且存在 $A_{i+2}$,那么法老可以令$ Ai$ 和 $A_{i+1}$ 减一, ...