【问题标题】:CodeIgniter Upload Library not returning file extensionCodeIgniter 上传库不返回文件扩展名
【发布时间】:2014-03-02 15:47:14
【问题描述】:

由于某种原因 Stack Overflow 删除了这一行,我先打声招呼并感谢您的关注。

正如标题所说,Code Igniter 没有返回文件扩展名类型。我试过了

$upload_data = $this->upload->data();

    $ext = $upload_data['file_ext']; 

但它返回一个空字符串。

如果我得到 var dump $upload_data,你可以看到它没有文件类型。这是一个错误吗?我错过了什么吗?除了我无法检索文件扩展名以将其放入数据库之外,其他一切都按预期工作。

array (size=14)
  'file_name' => string '123456' (length=6)
  'file_type' => string '' (length=0)
  'file_path' => string 'uploads/' (length=8)
  'full_path' => string 'uploads/123456' (length=14)
  'raw_name' => string '123456' (length=6)
  'orig_name' => string '' (length=0)
  'client_name' => string '' (length=0)
  'file_ext' => string '' (length=0)
  'file_size' => string '' (length=0)
  'is_image' => boolean false
  'image_width' => string '' (length=0)
  'image_height' => string '' (length=0)
  'image_type' => string '' (length=0)
  'image_size_str' => string '' (length=0)

文件重命名:

     /altering file name to user input
        $str = $this->input->post('filename');
        $config['file_name'] = $str;
   //adding name to DB
    $imagename = $str;

    $this->Image_model->addImage($imagename, $imageurl);

为了澄清我的查询,我希望能够检索文件扩展名,以便可以将其 URI(URL?) 存储在数据库中,以便最终可以使用数据库中的图像填充下拉列表。

【问题讨论】:

  • 你上传的真实文件名是什么(包括扩展名)?
  • 它在上传过程中被重命名为用户输入的任何内容,但无论如何要回答你的问题“test.jpg” - 我不认为这是一个问题的原因是因为它没有删除将其放置在上传文件夹中后的扩展名,而不是具有新名称及其扩展名。
  • 用户是否在输入中输入了文件的全名?包括文件名和扩展名?我的意思是$this->input->post('filename')
  • 不只是第一部分而不是扩展名,这会覆盖它吗?我认为这不是问题,因为图像上传到的文件夹名称正确且扩展名正确。因此,如果我从图像“test.jpg”开始,用户上传它并将其命名为“notttest.jpg”,它将在我的 /uploads/ 文件夹中为 nottest.jpg 但数据库条目只会显示“nottest”。
  • 是的,当然!这就是问题所在,CodeIgniter 尝试根据 file_name 配置重命名文件,该配置也应包括文件扩展名。

标签: php mysql codeigniter upload


【解决方案1】:

无论您使用任何库,您都可以使用pathinfo( $imagename, PATHINFO_EXTENSION ) 来获取文件的扩展名。

示例:

$link = 'base.mini.css';

if( pathinfo( $link, PATHINFO_EXTENSION ) == 'css' ){

echo "css file";

}else{

echo "file ext is :".pathinfo( $link, PATHINFO_EXTENSION );
}

但请注意,在您提供的示例中,文件名不包含扩展名!因此,codeigniter 无法确定该文件的扩展名是正常的!

【讨论】:

    猜你喜欢
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 2017-02-23
    • 2013-09-17
    • 1970-01-01
    • 2012-09-13
    相关资源
    最近更新 更多