codeigniter 3,文件上传提供HTTP ERROR 500

时间:2016-10-27 21:34:58

标签: file-upload codeigniter-3

我是CodeIgniter 3框架的新手,所以我对这个漏洞有点深入了解。基本上,当我尝试上传图像时,它会抛出HTTP ERROR 500并且服务器上的错误日志中没有错误。

这是控制器的功能:

if ($_POST)
{
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|jpeg|png';
    $config['max_size'] = '1024';
    $config['max_width'] = '1920';
    $config['max_height'] = '1280';
    $this->load->library('upload', $config);

    foreach ($_FILES as $fieldname => $fileObject)
    {
        if (!empty($fileObject['name']))
        {
            $this->upload->initialize($config);
            if (!$this->upload->do_upload($fieldname))
            {
                var_dump($this->upload->display_errors());
            }
            else
            {
                 // SUCCESS
            }
        }
    }
}

我用is_dir,is_writable等检查了$config['upload_path']。这是chmod到777. $fieldname/$fileObject具有正确的值。没有添加.htaccess,我正在子域根目录

任何建议都会非常感激,因为我没有想法:)

3 个答案:

答案 0 :(得分:4)

this may be php.ini file problem

打开php.ini文件

搜索extension = php_fileinfo.dll

如果您使用的是xampp,则默认情况下可以注释

更改

;extension=php_fileinfo.dll

to

extension=php_fileinfo.dll

然后重启你的xampp ......

这解决了我的问题

答案 1 :(得分:3)

在php.ini中启用extension = php_fileinfo.dll

答案 2 :(得分:2)

@STL你使用XAMPP和Codeigniter 3.1.2吗?我也经历过这个。 我认为这是CodeIgniter 3.1.2中的一个错误,因为默认情况下在XAMPP或CentOS中没有加载fileinfo.dll。也许您应该检查服务器中的fileinfo扩展并加载它,或者只是将Codeigniter系统降级到3.1.0。

来源:Github