thinkphp5.0.5怎么自定义命名上传文件

发布网友 发布时间:2022-04-22 19:42

我来回答

2个回答

热心网友 时间:2023-11-03 18:44

ThinkPHP5.0内置了一个文件处理类 \think\File,内置的文件上传操作也是调用了该类进行处理的。

File类继承了PHP的SplFileObject类,因此可以调用SplFileObject类所有的属性和方法。

表单代码:

<form action="/index/index/upload" enctype="multipart/form-data" method="post">
<input type="file" name="image" /> <br> 
<input type="submit" value="上传" /> 
</form>

控制器代码:

public function upload(){
    // 获取表单上传文件 例如上传了001.jpg
    $file = request()->file('image');
    // 移动到框架应用根目录/public/uploads/ 目录下
    $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
    if($info){
        // 成功上传后 获取上传信息
        // 输出 jpg
        echo $info->getExtension();
        // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
        echo $info->getSaveName();
        // 输出 42a79759f284b767dfcb2a0197904287.jpg
        echo $info->getFilename(); 
    }else{
        // 上传失败获取错误信息
        echo $file->getError();
    }
}

move方法成功的话返回的是一个SplFileInfo对象,你可以对上传后的文件进行后续操作,比如改名。

热心网友 时间:2023-11-03 18:45

文件重命名。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com