作者:白狼 出处:http://www.manks.top/yii2_multiply_images.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

文件上传也写过几篇文章了,包括最基本的yii2文件上传、异步上传到又拍云以及百度编辑器图片上传的问题,貌似不说点多图上传的就不完美。

今天介绍一款多图上传的插件 FileInput,至于为什么选中了TA作为我们上传的插件,一来这货跟Yii2有一腿,用起来方便;二来嘛,用这个插件不仅添加的时候好操作,修改的时候也可以直接通过异步的方式将图片悄无声息的删掉或者新增;最值得一提的是,界面效果融合了bootstrap,清爽简洁美观,看起来舒服。

说重点,看具体步骤

首先还是先安装组件

composer require kartik-v/yii2-widget-fileinput "@dev"

先做一个必要的说明:假设我们有一张商品表,一张商品图片表,商品图片表只对商品id和图片地址进行存储

看基本使用

use kartik\file\FileInput;// 非ActiveForm的表单
echo '<label class="control-label">图片</label>';
echo FileInput::widget(['model' => $model,'attribute' => 'image[]','options' => ['multiple' => true]
]);//使用ActiveForm的表单
echo $form->field($model, 'image[]')->widget(FileInput::classname(), ['options' => ['multiple' => true],
]);

上面上传多图,只需要设置multiple=true即可,记得选择图片的时候多选。

如此一来,图片选择好了直接提交表单就好,文件上传的程序需要自行处理,如果你还没有实现,可以参考文件上传的基本操作。

多图上传的唯一麻烦就是,修改的时候怎么才方便?不着急,FileInput都帮我们解决了!

我们看编辑的时候图片的展示以及如何异步的删除单个或者多个图片!

// 视图文件
use kartik\file\FileInput;
<?php $form = ActiveForm::begin(['options' => ['enctype'=>'multipart/form-data'],
]); ?><?php
echo $form->field($model, 'banner_url[]')->label('banner图')->widget(FileInput::classname(), ['options' => ['multiple' => true],'pluginOptions' => [// 需要预览的文件格式'previewFileType' => 'image',// 预览的文件'initialPreview' => ['图片1', '图片2', '图片3'],// 需要展示的图片设置,比如图片的宽度等'initialPreviewConfig' => ['width' => '120px'],// 是否展示预览图'initialPreviewAsData' => true,// 异步上传的接口地址设置'uploadUrl' => Url::toRoute(['/goods/async-image']),// 异步上传需要携带的其他参数,比如商品id等'uploadExtraData' => ['goods_id' => $id,],'uploadAsync' => true,// 最少上传的文件个数限制'minFileCount' => 1,// 最多上传的文件个数限制'maxFileCount' => 10,// 是否显示移除按钮,指input上面的移除按钮,非具体图片上的移除按钮'showRemove' => true,// 是否显示上传按钮,指input上面的上传按钮,非具体图片上的上传按钮'showUpload' => true,//是否显示[选择]按钮,指input上面的[选择]按钮,非具体图片上的上传按钮'showBrowse' => true,// 展示图片区域是否可点击选择多文件'browseOnZoneClick' => true,// 如果要设置具体图片上的移除、上传和展示按钮,需要设置该选项'fileActionSettings' => [// 设置具体图片的查看属性为false,默认为true'showZoom' => false,// 设置具体图片的上传属性为true,默认为true'showUpload' => true,// 设置具体图片的移除属性为true,默认为true'showRemove' => true,],],// 一些事件行为'pluginEvents' => [// 上传成功后的回调方法,需要的可查看data后再做具体操作,一般不需要设置"fileuploaded" => "function (event, data, id, index) {console.log(data);}",],
]);
?>
<?php ActiveForm::end(); ?>

如上所述,基本上都是组件 FileInput的基本属性和设置,我们这里也仅仅罗列了一些常用的属性介绍,如有所需,可查看文档看属性的详细说明。

按照如上所配置,我们预览下效果图
(图片见原文)

感觉上效果很是可以,在开始写php代码实现之前,我们先在controller中实现 initialPreview和 initialPreviewConfig的配置

[考虑目前国内网站大部分采集文章十分频繁,更有甚者不注明原文出处,原作者更希望看客们查看原文,以防有任何问题不能更新所有文章,避免误导!]

继续阅读

yii2组件之多图上传插件FileInput的详细使用相关推荐

  1. php多图上传插件ios,yii2组件之多图上传插件FileInput的详细使用

    作者:白狼 出处:http://www.manks.top/yii2_multiply_images.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...

  2. jquery点击加号多图上传插件

    下载地址一款js多图片上传插件,点击加号图片实时预览,然后点击按钮统一提交上传,不错的jquery多图上传插件. dd:

  3. query上传插件uploadify参数详细分析

    query上传插件uploadify参数详细分析 Uploadify Version 3.2 官网:http://www.uploadify.com/ 注:文件包里有两个js分别是:jquery.up ...

  4. PHP百度diyUpload多图上传插件实例

    在开发过程中经常需要用到多图上传的插件,最近发现前端找的这个diyUpload就不错,于是就整理了一个实例,仅供参考! 使用该插件,首先需要引入必要的css和js: 然后在需要用到该插件的地方,加入一 ...

  5. php模板多图上传插件,PHP+jQuery+Ajax多图片上传插件

    注:本地预览无效,需要在服务断运行 使用方法 HTML 首先我们在页面上放置个上传按钮,使用POST提交到ajax.php.#ul_pics 用来显示上传完毕后的图片.关于按钮.进度条.图片垂直居中样 ...

  6. bootstrap3 文件上传插件fileinput中文说明文档

    file input插件功能如此强大,样式非常美观,并且支持上传文件预览,ajax同步或异步上传,拖曳文件上传等炫酷的功能,完全没有理由不去使用,但是国内很少能找到本插件完整的使用方法,于是本人去其官 ...

  7. 多图上传以及多图排序的方法及流程详解

    多图上传以及多图排序的方法及流程详解 ps:本人亲测,阿里云2核4G5M的服务器性价比很高,新用户一块多一天,老用户三块多一天,最高可以买三年,感兴趣的可以戳一下:阿里云折扣服务器 所用插件包打包下载 ...

  8. tinymce 多图上传,上传文件,上传视频,单图上传

    tinymce 多图上传,上传文件,上传视频,单图上传 参考材料 引入插件 单图上传,文件上传,图片上传 多图上传 参考材料 http://tinymce.ax-z.cn/more-plugins/a ...

  9. antd vue3 图片上传组件扩展,支持多图上传 图片拖拽排序等

    组件涉及到 vue3.2.vite.Ant Design Vue 3.2.16.Windi CSS样式库.vuedraggable-es拖拽库等 组件功能 图片拖拽 多图上传 自定义图片加载样式 自定 ...

  10. vant weapp 多选上传图片_微信小程序结合vant weapp ui实现多图上传组件

    微信小程序多图上传 最近在写小程序的商品上传,为方便需要使用多张图片的上传的功能.因为小程序不支持数组的多张图片同时上传,然后根据自己的需求创建了一个组件希望能够帮到大家 效果图 创建一个图片上传的p ...

最新文章

  1. raid5 增加一块硬盘_Raid5热备盘上线同时另一块硬盘离线如何恢复数据
  2. C语言试题八十一之利用递归函数调用方式,将所输入的5个字符,相反顺序打印
  3. Servlet验证码功能
  4. 千亿级照片,毫秒间匹配最佳结果,微软开源 Bing 搜索背后的关键算法
  5. 2.3.PHP7.1 狐教程-【PHP变量的作用域】
  6. 提高局域网速度的21招
  7. sqlite 数据库 boolean类型的小小测试
  8. 【33】t-SNE原理介绍与对手写数字MNIST的可视化结果
  9. 在linux上将ape转成mp3,以及MP3 大小转换
  10. 华为 BGP路由聚合
  11. 【MATLAB】P图神器,初露锋芒:第一周作业
  12. C/C++探秘(1)
  13. AVProVideo☀️九、“今朝若能同淋雪,此生也算共白头”。一曲《南山雪》,学习给视频做字幕。
  14. iOS 九年,技术迭代迅捷下如何保持核心竞争力?
  15. Linux下的zip压缩解压缩文件夹
  16. Paddle打比赛-古籍文档图像识别与分析算法比赛
  17. 帝企鹅日记(史上第二受欢迎记录片 老少皆宜的冰雪童话)
  18. Java版本实现对角棋
  19. 2019年7月31日18:57:48
  20. 湖北大学计算机考研参考书,湖北大学2018考研专业课参考书

热门文章

  1. pyspark调用spark以及执行带in语句参数的hql示例
  2. matlab之find函数
  3. python中如何导入图片_python如何导入图片
  4. 【生信进阶练习1000days】day7-RSQLite的使用
  5. 使用MagicRecon在挖洞时最大化数据收集量
  6. Hershell:跨平台反向Shell生成器
  7. Tomcat找不到Controller里面的路径
  8. 使用re正则匹配网络请求到的正文内容,筛选出jpg图片链接
  9. 计算机基础第五章知识,计算机基础第5次作业-第五章-Powerpoint知识题
  10. 获取URL参数JS函数