摘要: 解决方案在使用tp上传多个文件上传的时候,一定要注意前台的写法!!!先把我代码贴出来参考一下:index控制器:1234567891011121314151617181920212... 解决方案
在使用tp上传多个文件上传的时候,一定要注意前台的写法!!!
先把我代码贴出来参考一下:
index控制器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?phpnamespace app\index\controller;use think\Controller;use think\Loader;use think\Db;use think\Request;class Index extends Controller{ public function index() { if(isset($_POST['sub'])) { $file = request()->file('file'); foreach($file as $files) { $info = $files->move(ROOT_PATH . 'public' . DS . 'uploads/images'); if($info){ echo '文件上传成功'.'<br/>'; } else{ echo '文件上传失败'.'<br/>'; } } } else { return view('index'); } }} |
index.html视图
错误解析:
多文件上传的情况下,前台的name属性的值必须是一个
数组格式,如果接受过来的文件是一个字符串格式,所以就无法使用foreach,从而报错。
正确写法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Document</title></head><body><form method="post" enctype="multipart/form-data"> <input type="file" name="file[]" /><br> <input type="file" name="file[]" /><br> <input type="file" name="file[]" /><br> <input type="submit" name="sub" value="提交" /></form></body></html> |
或者(推荐使用):
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Document</title></head><body><form method="post" enctype="multipart/form-data"> <input type="file" name="file[]" multiple="multiple" /><br> <input type="submit" name="sub" value="提交" /></form></body></html> |
mulitple:可在一个上传控件里上传多个文件。比较节省代码。













