|
发表于 2017-8-18 17:45:25
|
显示全部楼层
已找到方法解决,可以成功上传pptx,由于是菜鸟,即使解决了问题还是不知道原理是什么?
在CI框架中system/libraries/Upload类中,修改is_allowed_filetype方法中的以下代码,就可以上传pptx格式。
public function is_allowed_filetype($ignore_mime = FALSE)
{
if ($this->allowed_types === '*')
{
return TRUE;
}
if (empty($this->allowed_types) OR ! is_array($this->allowed_types))
{
$this->set_error('upload_no_file_types', 'debug');
return FALSE;
}
$ext = strtolower(ltrim($this->file_ext, '.'));
if ( ! in_array($ext, $this->allowed_types, TRUE))
{
return FALSE;
}
// Images get some additional checks
if (in_array($ext, array('gif', 'jpg', 'jpeg', 'jpe', 'png'), TRUE) && @getimagesize($this->file_temp) === FALSE)
{
return FALSE;
}
if ($ignore_mime === TRUE)
{
return TRUE;
}
if (isset($this->_mimes[$ext]))
{
// return is_array($this->_mimes[$ext])
// ? in_array($this->file_type, $this->_mimes[$ext], TRUE)
// : ($this->_mimes[$ext] === $this->file_type);
//修改以下部分,便可允许上传pptx,上面是源码!
return is_array($this->_mimes[$ext])
? in_array($this->file_type, $this->_mimes[$ext], TRUE)||in_array($this->file_type, array('application/vnd.ms-powerpoint'), TRUE)
: ($this->_mimes[$ext] === $this->file_type);
}
return FALSE;
} |
|