thinkphp文件上传


该方法已经测试过了,可以正常使用,我用的是用的是ThinkPHP3.2版本写的,如果想自己添加参数的话,请参考ThinkPHP3.2的文档,该方法的原理就是先实现文件的上传,然后获取文件的名字,再用函数获取文件的扩展名(如果想指定扩展名的话,此步骤可以省略,只需要定义新的名字就行)最后调用重命名函数,对文件进行重命名。
首先先写一个前台的表单,用于提交文件

<form action="__URL__/upload" enctype="multipart/form-data" method="post" >
     <input type="text" name="name" />
     <input type="file" name="photo" />
     <input type="submit" value="提交" >
 </form>

下面这个是文件上传函数,实现文件的上传

上传函数


public function upload(){
     $upload = new \Think\Upload();// 实例化上传类
     $oldFN = $_FILES;//获取图片的信息,在后面传给重命名函数
     $upload->maxSize = 3145728 ;// 设置附件上传大小
     $upload->exts = array('jpg', 'gif', 'png', 'jpeg');
                // 设置附件上传类型
     $upload->rootPath = './'; // 设置附件上传根目录
     $upload->savePath = ''; // 设置附件上传(子)目录
     $upload->replace = true;//如果存在同名文件就覆盖
     $upload->autoSub = false;
                //不使用子目录保存上传文件,即上传到指定的文件夹
     $info = $upload->upload();
    $this->renameFile($oldFN['photo']['name'], './');//调用重命名函数
     if(!$info) {// 上传错误提示错误信息
         $this->error($upload->getError());
     }else{// 上传成功
         $this->error('上传成功!');
     }
 }

重命名函数


下面这个是文件重命名函数(重命名为1,2,3)

public function renameFile($oldFN,$path){
    for($i=0;$i<count($oldFN);$i++){
         $extName = substr($oldFN[$i],strrpos($oldFN[$i],'.'));//获取扩展名
         $newName = ($i+1)."$extName";//新的名字
         rename($path.$oldFN[$i],$path.$newName);//重命名
     }
 }

如果有不懂,或者无法正常运行的地方,可以联系我哦。以后我会经常写一些自己的见解,写一些对大家有意义的文章,希望大家多多支持,也希望大家能够多提宝贵的意见。

Last modification:October 12, 2020
If you think my article is useful to you, please feel free to appreciate