Dropzone设uploadMultiple为100仅上传20张至Laravel的问题咨询
问题解决步骤
1. 修正Dropzone前端配置
你混淆了uploadMultiple和maxFiles的作用:
uploadMultiple是布尔值,仅控制是否允许一次性选择多个文件上传,并非上传数量上限maxFiles才是设置最大允许上传的文件总数
正确的Dropzone配置应包含:
Dropzone.options.myDropzone = { uploadMultiple: true, // 开启多选上传 maxFiles: 100, // 最大上传文件数设为100 // 其他配置项... };
2. 调整PHP上传限制
默认PHP的max_file_uploads参数值为20,这会直接限制单次请求最多上传20个文件,和你遇到的问题完全匹配。需要修改PHP配置:
- 找到php.ini文件,修改
max_file_uploads = 100 - 同时调整相关参数避免总大小超限:
upload_max_filesize = 20M ; 单文件最大大小,按需调整 post_max_size = 200M ; 单次请求总数据大小,需大于所有文件总大小
修改后重启PHP服务(如FPM、Apache等)。
3. 优化Laravel后端文件处理逻辑
检查文件获取逻辑,确保拿到所有上传文件数组,同时避免变量混淆:
$data = $request->file('file'); // 获取所有上传的文件数组 foreach ($data as $file) { if ($file->isValid()) { // 先验证文件有效性 $filename = $file->getClientOriginalName(); $file->move(public_path('storage/image'), $filename); GallaryDetile::create([ 'filename' => $filename, 'gallary_id' => $lastId->id, ]); } }
4. 检查Laravel验证规则
如果使用了表单请求验证,确保规则中没有限制文件数量,比如不要写file|max:20,需改为file|max:100(若需要验证数量)。
内容的提问来源于stack exchange,提问作者Vannak Ro
相关产品推荐
相关产品推荐

