上传文件名不能扩展名不能保存文件名php php 2.5.5
问题描述:
上传文件名不是扩展名不能保存文件名。我正在使用CakePHP 2.5.5,并且上传文件“文件名”时出现问题我没有错误,但文件名不保存在数据库中,但保存扩展名文件都很好。我的代码: -上传文件名不能扩展名不能保存文件名php php 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);die();
:
$filename=strToLower(pathinfo($path,PATHINFO_BASENAME));
?
在所有PHP版本,我用了正确的用法居然是:
strtolower();
注意,整个方法名是小写。如果PHP无法识别该方法,则可能将$filename
设置为NULL
?
此外,我注意到你的in_array()方法是寻找一个文件扩展名尚未$文件名将包含基本名称pathinfo($path,PATHINFO_BASENAME);
如果你想,如果你需要添加
$fileExtension = pathinfo($path, PATHINFO_EXTENSION);
语句输入您的
并替换:
in_array($filename, array('docx', 'ppt'));
有:
in_array($fileExtension, array('docx', 'ppt'));
with debug($ filename); die();显示我的文件名称,我也改变功能strtolower();但同样的问题名称的文件不保存到数据库!但与扩展所有好! – Raki
在**你调用'$ this-> Activite-> saveField('file',$ filename);'并发布结果之前,添加这些行**。你可以告诉我们你的表字段名吗?我们可以告诉我们你的表字段名吗? –
@drmonkeyninja感谢您的格式修复。我新哈哈。现在我知道应该怎么做,谢谢! –