2016-04-15 8 views
0

拡張子ではない名前のファイルをアップロードするとファイル名を保存できません。私はCakePHP 2.5.5を使用していますが、ファイル "ファイル名"のアップロードに問題があります。エラーはありませんが、ファイル名はデータベースには保存されませんが、拡張子ファイルはすべて保存されます。私のコード: -拡張子ではないファイルをアップロードすると、ファイルの名前を保存できません。ケーキ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'); 
       } 


      } 

    } 

} 

答えて

0

あなたは後にdebug($filename);die();と正しいファイル名を取得しています:

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

?私は正しい使用法を使用したすべてのPHPバージョン

は実際にある:全体のメソッド名は小文字のあること

strtolower(); 

注意してください。 PHPがメソッドを認識しない場合は、おそらく$filenameからNULLに設定されていますか?

はまた、私はあなたがあなたのif文を入力する場合は、

$fileExtension = pathinfo($path, PATHINFO_EXTENSION); 
を追加する必要があり、あなたのin_array()メソッドは、まだファイルの拡張子を探している$ filenameはベース名が含まれていますに pathinfo($path,PATHINFO_BASENAME);

に気づきました

と置き換える:

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

で:

in_array($fileExtension, array('docx', 'ppt')); 
+0

debug($ filename); die();私にファイルの名前を表示する、また関数をstrtolower()に変更する;ファイルの同じ問題の名前はデータベースに保存されません!しかし、すべての良いextentionと! – Raki

+0

'$ this-> Activite-> saveField( 'file'、$ filename);を呼び出し、**結果を送信する前に**これらの行を追加してください。 'debug($ this-> Activite-> id);' 'デバッグ($ファイル名);' '終了;' また、テーブルのフィールド名を教えてください。 –

+1

@drmonkeyninja形式を固定していただきありがとうございます。私は新しいハハです。今、私はそれがどのようにすべきかを、感謝します! –

関連する問題