首页 文章

Codeigniter:不允许您尝试上传的文件类型 . 昨天很好

提问于
浏览
0

我的codeigniter应用程序今天突然破了 . 我没有处理上传代码,当我今天尝试上传图片时,我突然得到“你试图上传的文件类型是不允许的 . ”昨天一切都很好 .

我的配置数组是:

$config = array(
     'file_name' => $data['slug'] .'-'. $key,
     'upload_path' => './images',
     'allowed_types' => 'gif|jpg|jpeg|png'
    );

我也尝试将允许的类型设置为:'image / gif | image / jpg | image / jpeg | image / png'但没有运气 .

转储$ this-> upload-> data():

Array
(
    [file_name] => ring.jpg
    [file_type] => image/jpeg
    [file_path] => /home/user/www.domain.ca/images/
    [full_path] => /home/user/www.domain.ca/images/ring.jpg
    [raw_name] => ring
    [orig_name] => 
    [client_name] => ring.jpg
    [file_ext] => .jpg
    [file_size] => 49158
    [is_image] => 1
    [image_width] => 
    [image_height] => 
    [image_type] => 
    [image_size_str] => 
)

我知道以前版本的CI存在一些错误,但我昨天没有遇到这些问题 . 我也明白,如果MIME类型与允许的内容不匹配,则只会出现此错误,但似乎并非如此 .

服务器是Apache .

有谁知道可能是什么问题?谢谢!

4 回答

  • 1

    我有两次这个问题,这里有两个对我有用的解决方案;

    1 - 系统报告的mime类型可能不同,并且可能不在为特定文件扩展名设置的mime类型数组中 . .csv文件是我发现的最糟糕的 . 通过在上传后转储上传数据,找出系统报告的mime类型

    die($this->upload->data());
    

    'file_type'索引将包含一个字符串 - 将其添加到数组值中,索引与application / config / mimes.php中所需的文件扩展名匹配

    2 - 我最近的时间是将我的核心Codeiginter版本从2.x升级到3.x.我更新了系统目录的内容,但没有更新application / config . 我没有发现application / config / mimes.php文件略有不同的事实 - 较新版本返回一个数组,而旧版本包含它作为var . 修复是在较新版本的mimes.php中复制

  • 2

    你正确初始化了 $config 吗?

    $this->load->library('upload', $config);
    $this->upload->initialize($config); // Make sure it has been initialized
    
  • 0

    我今天遇到了同样的问题 .

    我所做的只是将 CodeIgniter-3.0.6\application\config\mimes.php 的全部内容复制到我的 application\config\mimes.php .

  • 4

    不确定这是否有帮助,我只在我的Windows开发机上运行在本地主机上的测试服务器上有这个问题,在我的实时网络托管上它可以很好地检测mime类型 .

    我快速浏览了上传库本身,我发现你可以在允许的类型中添加*以允许任何内容 .

    不要认为这在手册中的任何地方都有记录,但是为我排序问题,因为我只想让我的脚本在本地运行并在其上运行 .

相关问题