Laravel Dusk多文件上传重复附加问题求助
Laravel Dusk多文件上传重复问题解决方案
问题原因
你多次调用attach()方法的写法会导致重复追加文件:Laravel Dusk的attach()方法在处理带multiple属性的文件上传input时,每次调用都会将新文件追加到已选文件列表中,而非替换原有列表。所以第一次调用添加1个文件,第二次调用保留第一个并添加第二个,第三次调用保留前两个并添加第三个,最终总数为1+2+3=6个,也就是你看到的重复情况。
解决方法
使用attach()方法的数组传参形式,一次性传入所有文件路径,即可避免重复追加问题:
->attach('#images', [ base_path('/data/tests/media/images/incorrect_format.webp'), base_path('/data/tests/media/images/incorrect_size.jpg'), base_path('/data/tests/media/images/incorrect_dimensions.png') ])
补充说明
- 确认你的input元素已正确设置
multiple="multiple"属性(你的代码已满足此要求); - 传入的文件路径必须为绝对路径,你使用
base_path()生成路径的方式是正确的; - 这种方式会一次性完成所有文件的附加,仅触发一次
change事件,符合多文件上传的常规逻辑。
内容的提问来源于stack exchange,提问作者Petar Vasilev
相关产品推荐
相关产品推荐

