PHP TP5 实现多文件上传到本地
1.前台表单,action提交地址视情况而写,编码类型 于 提交方式 的属性值不变:
<form action="emailDo" enctype="multipart/form-data" method="post"> <input type="file" name="image[]" /> <br> <input type="file" name="image[]" /> <br> <input type="file" name="image[]" /> <br> <input type="submit" value="上传" /> </form>
2.控制器:
public function emailDo() { //调用文件上传的方法 $email = $this->upload(); //输出返回后的数组 print_r($email); //如果要添加到MySQL数据库 可以new一个模型 使用insertAll($email)进行批量添加 //注:模型名一定要和数据库名称一样 否则无法添加 //也可以将$email这个数组传入相对应的模型 在模型中使用insertAll($email)进行批量添加 } public function upload()//单独封装一个多文件上传的方法 { // 获取表单上传文件 $files = request()->file('image'); //定义数组用来接收上传成功后的文件名 $arr=[]; foreach ($files as $file) { // 移动到框架应用根目录/public/uploads/ 目录下 路径也可自行更改 $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads'); if ($info) { // 成功上传后 获取上传信息 // 将上传后的文件名放入到数组中 $arr[] = $info->getSaveName(); } else { // 上传失败获取错误信息 如果上传的文件有任何一件出错 那么直接输出错误 上方的数组将作废 $this->error($file->getError()); } } //所有文件都上传成功后 返回数组 return $arr; }
多文件上传就是在原有的单文件上传中添加了foreach循环遍历