0

私はcakephp2.1を使用していますが、ファイルをアップロードしようとしていますが、ファイルの拡張子を取得するにはどうすればよいですか。

データベース/ユーザー

Id Auto_Increment
username
file_name

Controller / UsersController.php

public function register(){
            if ($this->request->is('post')){
                $filename = $this->data['User']['file_name']['name'];
                //$temp_ext = $this->data['User']['resume_file']['ext'];

                $this->Session->setFlash('Extension : ' . $temp_ext);
            }
}

上記のコードを試したとき、拡張子を取得します。Lのような一文字だけを与えます。つまり、ファイル名の最初の文字を与えますが、拡張子は与えません。

ファイルの拡張子を取得するにはどうすればよいですか..このリンクを通過しました

http://api.cakephp.org/class/file

しかし、ファイルを取得することを理解できませんでした。


@JulianHollmannへのデバッグレポートの追加

array(
    'User' => array(
        'file_name' => array(
            'name' => '550992_234300256686731_213914803_n.jpg',
            'type' => 'image/jpeg',
            'tmp_name' => 'D:\xampp\tmp\php866F.tmp',
            'error' => (int) 0,
            'size' => (int) 42292
        )
    )
)
4

2 に答える 2

8

まず第一に、あなたのデータは$this->request->data

そこに何があるかを見たい場合は、debug($this->request->data);

編集: 正解は次のとおりです。

$filename = $this->request->data['User']['file_name']['name'];
$extension = pathinfo($filename, PATHINFO_EXTENSION);

PHPマニュアルも参照してください

于 2012-06-14T12:07:21.177 に答える
-1
$filename = $this->data['User']['file_name']['name'];
$this->request->data['User']['file_name'] = $filename;

$fileExt = explode(".", $filename);
$fileExt2 = end($fileExt);

これを試してください...それはあなたに拡張を与えるでしょう

于 2012-06-14T12:39:16.390 に答える