在cake php中获取上传文件的扩展名

时间:2012-06-14 10:53:33

标签: php cakephp file-upload file-extension cakephp-2.1

我正在使用cakephp 2.1,我正在尝试上传文件,我该如何检索文件的扩展名。

数据库/用户

Id Auto_Increment
username
file_name

控制器/ 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,r即文件名的字符,但不是扩展名

现在我如何获得文件的扩展名...我通过这个链接

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

但无法理解检索文件。


向@Julian Hollmann添加调试报告

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
        )
    )
)

2 个答案:

答案 0 :(得分:8)

首先,您的数据应位于$this->request->data

如果您想查看其中的内容,请执行debug($this->request->data);

修改 正确答案是:

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

另见php manual

答案 1 :(得分:-1)

$filename = $this->data['User']['file_name']['name'];
$this->request->data['User']['file_name'] = $filename;

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

试试这个...它会给你扩展