Cakephp 上载名为非扩展名的文件可以';t保存文件名2.5.5
上载名为非扩展名的文件无法保存文件名。我使用的是CakePHP 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
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'));