装包
npm install bootstrap-fileinput bootstrap --save
演示 gif 因为接口的原因失败了,但是并不影响示例的过程
示例源码
vue -> template部分代码 ```
- `.vue -> script` 部分代码,上面 data 便不展示了,这里重点演示的是自动上传的代码 里面有详细的参数配置定义
import $ from ‘jquery’ require(‘bootstrap-fileinput/js/fileinput.js’) // 引入图片上传插件 input 的逻辑全部都写在了这个文件内部了 需要注意!!! require(‘bootstrap-fileinput/js/locales/zh.js’) // 引入图片插件的汉化包 require(‘bootstrap-fileinput/themes/fa/theme.js’) // 引入主题包 require(‘bootstrap/dist/js/bootstrap.js’) // 引入 bootstrap
// export default{} 的代码片段 data(){ return{ // 图片上传接口 imgUploadAPI: ‘xxx’ } }
mounted:{ // 初始化图片上传控件 me.initInputFile($(‘input.file[type=file]’), me.imgUploadAPI) }
methods:{ // 初始化图片上传控件 initInputFile: function(eles, posturl) { const me = this let $input = eles if ($input.length) { $input .fileinput({ /**
* theme icon 主题 需要引入相应的主题包* language 语言设置 需要引入相应的语言包* uploadUrl 上传路径* showCaption 是否展示 input 文字的说明 -- 标题* showUpload 是否显示上传按钮* showRemove 是否可以删除* dropZoneEnabled 是否开启拖拽上传功能* maxFileCount 最多的文件数量* maxFileSize 最大的尺寸* allowedFileExtensions 允许的文件扩展名*/theme: 'fa',language: 'zh',uploadUrl: posturl,showUpload: false,showRemove: false,dropZoneEnabled: false,maxFileCount: 1,allowedFileExtensions: ['jpg', 'png', 'gif']})// 实现图片被选中后自动提交.on('filebatchselected', function(event, files) {// 选中事件$(event.target).fileinput('upload')}).on('fileuploaded', function(event, data) {// 提交成功之后let eleID = $(event.target).prop('id')// console.log(eleID)// 通过 ID 判断给相应的字段赋值if (eleID === 'userIDImageFront') {// 正面me.postData.frontPic = JSON.parse(getData.result).url} else if (eleID === 'userIDImageBack') {// 背面me.postData.reversePic = me.postData.frontPic = JSON.parse(getData.result).url} else if (eleID === 'userIDSIM') {// 手持me.postData.handPic = me.postData.frontPic = JSON.parse(getData.result).url}})}},
}
## 更新- 问题> 由于在上传时未在 html 中写 `file` 文件的 `name` 属性值,从而导致数据无法传递- 解决方法
```
需要注意的是这个
name属性的值不是随便写的,而是需要与后台写的保持一致,这个需要询问后台定义的参数名称
- gIf 图演示


