(13)学习tp5之上传图片

系统学习tp5框架,请点击下面的连接

(1)学习tp5之助手函数得原理解析

(2)学习tp5之常量、自动加载、命名空间

(3)学习tp5之配置文件

(4)学习tp5之路由类型,定义,动态注册,过滤,闭包,miss(默认),资源路由

(5)学习tp5之请求

(6)学tp5之响应

(7)学习tp5之控制器原理和使用

(8)学习tp5之ORM操作数据库

(9)学习tp5之模型

(10)学习tp5之视图

(11)学习tp5之命令行的使用和验证表单令牌

(12)学习tp5之验证码和缓存

(13)学习tp5之上传图片

(14)学习tp5之日志

(15)学习tp5之 自定义命令行


总结:

1、多图上传,name值要是个数组。控制器中直接遍历

2、图片上传思路:表单提交后,接收-》效验-》移动文件-》获取上传后的路径-》入库


路由:

use think\Route;
//该文件是路由的配置文件,解决复杂场景用的

Route::get('index','index/VaData/index');
Route::post('upload','index/VaData/upload');  //单图
Route::post('manyUpload','index/VaData/manyUpload');  //多图

模板代码:

(13)学习tp5之上传图片

控制器读取的配置文件:

(13)学习tp5之上传图片

控制器代码:

public function index(){

    return $this->fetch();
}

//单图
public function upload(){
    $file = $this->request->file('img');   //接收图片
    //dump($file);die;

    //验证规则等,在配置文件中读取(多维用点或['']读取)
    $info = $file->validate(Config::get('fileUpload.file_config'))    
        ->move(Config::get('fileUpload.file_path'));

    if($info){
        // 成功上传后 获取上传信息
        echo $info->getExtension(); //上传文件的后缀
        echo $info->getSaveName();  //上传后保存的路径
        echo $info->getFilename();  //上传后的新名称
    }else{
        // 上传失败获取错误信息
        echo $file->getError();
    }
}

//多图
public function manyUpload(){
    $files = $this->request->file('image');   //接收图片
    //dump($files);die;
    foreach($files as $file) {                      //多图上传关键在这
        //验证规则等,在配置文件中读取
        $info = $file->validate(Config::get('fileUpload.file_config'))
            ->move(Config::get('fileUpload.file_path'));

        if ($info) {
            // 成功上传后 获取上传信息
            echo $info->getExtension(); //上传文件的后缀
            echo "<br />";
            echo $info->getSaveName();  //上传后保存的路径
            echo "<br />";
            echo $info->getFilename();  //上传后的新名称
            echo "<br />";
        } else {
            // 上传失败获取错误信息
            echo $file->getError();
        }
    }
}