codeigniter 3,文件上传给出 HTTP ERROR 500

Posted

技术标签:

【中文标题】codeigniter 3,文件上传给出 HTTP ERROR 500【英文标题】:codeigniter 3, file upload gives HTTP ERROR 500 【发布时间】:2017-03-10 17:24:09 【问题描述】:

我是 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']。这是 777 的 chmod。$fieldname/$fileObject 具有正确的值。没有添加 .htaccess,我正在子域根目录中工作

任何建议都将不胜感激,因为我没有想法:)

【问题讨论】:

@noushid p,如果你注意到的话……他说他收到了一条错误消息。 每当出现 500 错误时,都应该有一个服务器日志,其中包含确切的错误消息 somewhere。您确定您正在寻找正确的位置吗? 我在本地主机(Windows 10)上遇到了完全相同的问题。请问有人找到解决办法了吗? @Azmeer 你看过你的错误日志了吗?根据您使用的服务器,它将位于不同的路径中。对于 XAMPP,路径为 ***.com/questions/3719549/… 【参考方案1】:

this may be php.ini file problem

打开你的 php.ini 文件

搜索 extension=php_fileinfo.dll

如果你使用的是 xampp,它可能会被默认注释

改变

;extension=php_fileinfo.dll

to

extension=php_fileinfo.dll

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

这解决了我的问题

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

来源:Github

【讨论】:

以上是关于codeigniter 3,文件上传给出 HTTP ERROR 500的主要内容,如果未能解决你的问题,请参考以下文章

上传图片并在codeigniter中插入文本

网址在 codeigniter 中无法正常工作,给出错误“未指定输入文件”。

如何设置 CodeIgniter 忽略 Wordpress 文件夹?

上传 CodeIgniter 网站 bt cpanel

Codeigniter上传:插入数据库时​​图像的文件名返回null

如何在codeigniter中上传2个单独的图像