记一次,thinkphp上传文件,部分input中的文件无法上传的问题

	在实际项目中,经常会遇到文件上传的功能。这其中,就有一种情况,就是有多个文件上传的模块,有的是单文件上传,而有的则需要多文件上传。那么在多文件上传的input中,需要name值的最后是以“[]”来结尾,比如<input type="file" name="pics[]" multiple>。其中的“multiple”代表的是该input可以选择多个文件,但这个不是本文的重点,本文的重点,是前面的这个“name”。
	上示例代码,如下图:
	![代码1](https://img-blog.csdnimg.cn/20200729102907709.png)
	在上面例子的情况下,点击提交按钮,你会发现,后台只会收到name是pic的这个input的值,而后面那个多文件上传的“pics[]”input中选中的文件,一个都没上传。原因是,name中带“[]”则说明这个参数会以数组的形式传输,而不带的,则以字符串的形式传输。而这两个都是文件上传input,却分为了两种形式传输,在后台接受文件上传的方法,只有一个。默认是接受单文件上传的格式,所以,后面的以数组形式上传的文件,直接被忽略了。因此,此时应该在上面name=“pic”中,也加入“[]”,即可解决问题。只要不加“multiple”,它还是单文件上传,只是改变了数据格式。
	总结,在这种单文件和多文件混用上传的情况下,需要统一在name中加上“[]”。如哪位大神发现我的说法错误或有别的办法解决的(再此只说用form的形式上传),请指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值