【问题标题】:get extension of uploaded file in cake php在cake php中获取上传文件的扩展名
【发布时间】:2018-06-21 17:53:26
【问题描述】:

我正在使用 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 这样的单个字母,即文件名的第一个字符,而不是扩展名

现在我怎样才能得到文件的扩展名.. 我浏览了这个链接

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

【问题讨论】:

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


    【解决方案1】:

    首先,你的数据应该在$this->request->data

    如果你想看看里面有什么,只需debug($this->request->data);

    编辑: 正确答案是:

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

    另见php manual

    【讨论】:

    • 感谢您对此的大力帮助。但是我需要知道文件的扩展名..当我这样做时..我得到了数据的完整细节......它显示了type=>image/jpeg$this->data['User']['file_name']['type'])$this->request->data['User']['file_name']['type'])但它只显示第一个字母文件名
    • 能否提供 $this->request->data 的完整调试输出?
    【解决方案2】:
    $filename = $this->data['User']['file_name']['name'];
    $this->request->data['User']['file_name'] = $filename;
    
    $fileExt = explode(".", $filename);
    $fileExt2 = end($fileExt);
    

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

    【讨论】:

    • 现在我会接受这个答案,如果 typeextension 值来自 cakephp 框架......请告诉我......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多