我是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,我正在子域根目录
任何建议都会非常感激,因为我没有想法:)
答案 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