提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
文章目录
前言
一、项目背景
二、使用步骤
1.通过formdata方式进行上传
三、遇到的问题
1.当传入数组形式的参数时,打印出来是object格式:
2.文件上传时,打印为空,后台接收不到文件参数
3.excel导入时,用的组件是php excel 会读取空白行
总结
前言
本文记录了前台vue上传文件并携带数组类型的参数,php后台接收时遇到的问题
一、项目背景
前台vue上传excel导入,并携带数组类型的参数,后台php通过导入的数据与传入的数据对比验证
二、使用步骤
1.通过formdata方式进行上传
这个网上代码很多,直接搜索就可以,注意的有两点:
1需要配置好请求头:'Content-Type': 'multipart/form-data'
2.需要写对文件的key值。
let fileFormData = new FormData();fileFormData.append('address', this.files);//address是键,file是值,就是要传的文件
三、遇到的问题
1.当传入数组形式的参数时,打印出来是object格式:
将添加参数的代码:
params.append('address',this.address);//其中address就是你的数组参数
改为:
params.append('address',JSON.stringify(this.address));
最后后台接收示例:(将字符串转成json数组的形式)
$true_data = json_decode($trueData, true);
2.文件上传时,打印为空,后台接收不到文件参数
原因:通过vue的封装好的插件上传时,它内部将文件的key,默认写死成“file”,而我后台接收时叫address。故后台无法接受到。
解决方式:1.后台接收的key改为file;2.写原生的axios请求方式。
3.excel导入时,用的组件是php excel 会读取空白行
原因:excel的删除数据有两种方式,1右键点击删除行,2选择行按delete键。如果是第二种方式删除的数据,看着是删没了,但是用php excel操作的时候 还是会读取它,这时如果你有必填值判断,就肯定会报错了
解决方式:将该行单元格右键删除。
总结
遇到了很多问题,最后都一一解决了。收获很多,当你遇到问题的时候不要慌,选对关键词 进行搜索,总能解决你的问题的。