layui上传多张图片请求一次接口
新项目需求必须用layui写,没办法在用的过程中,碰到了这个问题,找了好久,最后用这个方法亲测是有效的,这样传参以后后台拿到了所有的数据,
var files
upload.render({
elem: ‘#upload’
,exts: ‘jpg|png|jpeg|gif’//设置可上传文件
,multiple: true
,auto: false//选择文件后不自动上传
,choose: function(obj){
console.log(obj)
files = obj.pushFile();
}
})
可以先拿到图片的文件files,当然也要将文件设置成点击提交按钮再请求后台,也可以用jq直接获取input框中的files,拿到以后再以下面的方法写,就可以一次性将数据全都发送到后台。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB9UMZR1T31EROBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxQTM5UjMzQTM1ADOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
最后请求的参数就是这样的,这样就保证可以与表单的其他数据一起提交,file文件也会以 数组的形式传到后台。
这里也是回答一下其他博主问的几个问题。
第一点强调一下存放文件的字段file这个字段可以随便声明,并不一定要叫file,这个就是前后端商量着来,怎么方便怎么来。
第二点也是我自己的锅,我是为了方便理解所以在file声明时带上了中括号[],这样误导了好多人,以为一定要带上中括号,这里还是和第一点一样,就是随便声明就可以,还是前后端商量着来。