Cakephp 上载名为非扩展名的文件可以';t保存文件名2.5.5

Cakephp 上载名为非扩展名的文件可以';t保存文件名2.5.5,cakephp,cakephp-2.5,Cakephp,Cakephp 2.5,上载名为非扩展名的文件无法保存文件名。我使用的是CakePHP 2.5.5,我上传文件时遇到问题“文件名”我没有错误,但文件名没有保存在数据库中,但使用保存扩展名文件都很好。我的代码:- public function ajouter() {//verifier si la requete est de type post if ($this->request->is('post')) { $this->Activite-&g

上载名为非扩展名的文件无法保存文件名。我使用的是CakePHP 2.5.5,我上传文件时遇到问题“文件名”我没有错误,但文件名没有保存在数据库中,但使用保存扩展名文件都很好。我的代码:-

public function ajouter()

    {//verifier si la requete est de type post
        if ($this->request->is('post')) {

            $this->Activite->create(); 
            //debug($this->request->data);die();

            if ($this->Activite->save($this->request->data)) {

                $path=$this->request->data['Activite']['actv_file']['name'];

                $filename=strToLower(pathinfo($path,PATHINFO_BASENAME));

    if(!empty($this->request->data['Activite']['actv_file']['tmp_name']) && in_array($filename,array('docx','pdf')))               
                 {

                     move_uploaded_file(
                    $this->data['Activite']['actv_file']['tmp_name'],
                    'files'.DS.'.'.$filename);

                    $this->Activite->saveField('file',$filename);

                $this->Session->setFlash('Ajout bien succé.'); // methode du component flash pour définir un message dans une variable session 

                $this->redirect('index');
                 }


             }

    }

}

您是否通过
debug($filename)获得正确的文件名;模具()之后:

$filename=strToLower(pathinfo($path,PATHINFO_BASENAME));
?

在我使用的所有php版本中,正确的用法实际上是:

strtolower();
请注意,整个方法名称是小写的。如果PHP无法识别该方法,它可能正在将
$filename
设置为
NULL

我还注意到您的in_array()方法正在查找文件扩展名,$filename将包含基本名称
pathinfo($path,pathinfo\u BASENAME)

如果要输入需要添加的If语句

$fileExtension = pathinfo($path, PATHINFO_EXTENSION );
并替换:

in_array($filename, array('docx', 'ppt'));
与:


使用debug($filename);模具();显示文件名,并将函数更改为strtolower();但相同问题的文件名没有保存到数据库!但是延伸都很好!!!在调用
$this->Activite->saveField('file',$filename)之前添加这些行并发布结果<代码>调试($this->Activite->id)调试($filename)
退出
另外,请告诉我们您的表字段名称好吗?@drmonkeynija感谢您的格式修复。我是新来的哈哈。现在我知道该怎么做了,谢谢!
in_array($fileExtension, array('docx', 'ppt'));