fileinput使用心得
下咋以及一些具体使用过程就不叙述了,简单说一下使用时候需要注意的几点
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使用心得的更多相关文章
- [Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能
很久没有更新博客了,再不写点东西都烂了. 这次更新一个小内容,是两个插件的组合使用,实现头像上传功能. 业务需求: 头像上传功能,要对上传的文件进行剪切,且保证头像到服务器时必须是正方形的. 优化&l ...
- bootstrap fileinput 文件上传
最近因为项目需要研究了下bootstrap fileinput的使用,来记录下这几天的使用心得吧. 前台html页面的代码 <form role="form" id=&quo ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- NoSql数据库使用半年后在设计上面的一些心得
NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(六) 函数
我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
随机推荐
- 安装rancher以及使用rancher倒入kubernetes集群和添加及管理集群
1.docker安装rancher [root@rancher ~]# docker run -d --name rancher --restart=unless-stopped -p : -p : ...
- (转)JS的splice()方法在for循环中的使用问题
在写JS代码时,我们常常使用 splice 函数来删除数组中的元素,因为 splice 函数会直接对数组进行修改,从而不需再自己写一个算法来移动数组中的其他元素填补到被删除的位置.splice 功能十 ...
- 简介、变量、常数、if、基础数据类型、注释、input()
### 1.python的历史 python2和python3的区别 python2 源码不统一,重复代码 python 源码统一,没有重复代码 2004 Django框架的诞生 2.python ...
- ORM下实现继承的三种方式(TPH TPC TPT)
TPH(Table Per Hierarchy):所有的数据都放在同一个表格内,但是使用辨别标志(Discriminator)的方式来区分 TPC(Table Per Concrete-Type):由 ...
- 《代码整洁之道》ch5~ch9读书笔记 PB16110698(~3.15) 第二周
<代码整洁之道>ch5~ch9读书笔记 本周我阅读了本书的第5~9章节,进一步了解整洁代码需要注意的几个方面:格式.对象与数据结构.错误处理.边界测试.单元测试和类的规范.以下我将分别记录 ...
- (转)常用的三种修改mysql最大连接数的方法
MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MYSQL连接数的方法有两个 方法一:进入MYSQL安装目录 打开MYSQL配置文件 ...
- 进程互斥软件实现之Lamport面包店算法
一. 进程互斥的实现方式 1. 软件方式: 保护临界区, 自己编写代码来实现对进程的控制. Dekker算法Peterson算法Lamport算法等 2. 硬件方式: 使用特殊指令保护临界区. 开关中 ...
- Datagrip2019本地激活
一.下载: https://www.jetbrains.com/zh/datagrip/ 下载2019版本的(当前2019.1.2版本) 二.使用方法 1. 先下载压缩包解压后得到jetbr ...
- 如何在 Apache Flink 中使用 Python API?
本文根据 Apache Flink 系列直播课程整理而成,由 Apache Flink PMC,阿里巴巴高级技术专家 孙金城 分享.重点为大家介绍 Flink Python API 的现状及未来规划, ...
- thinkphp 快捷查询
快捷查询方式是一种多字段查询的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表示OR查询,用&分割表示AND查询,可以实现下面的查询,例如: 大理石平台价格 一.不同字段相同的 ...