CodeIgniter:不允许您尝试上载的文件类型。isset($this->;_mimes[$ext])始终为空

CodeIgniter:不允许您尝试上载的文件类型。isset($this->;_mimes[$ext])始终为空,codeigniter,image-upload,Codeigniter,Image Upload,我花了几个小时来解决这个问题,但我不知道如何解决它。我尝试上载图像时收到错误消息。错误消息是“不允许您尝试上载的文件类型”。但我认为文件类型不会导致此问题。我发现$这个->上传->上传('image')总是错误的。我发现这是因为$this->\u mimes[$ext])(在“system/libraries/Upload.php”文件中)总是给我带来空值 当我测试我的函数时,我尝试了var\u dump($this->file\u type)并获得“图像/jpeg” 我还尝试了var\u du

我花了几个小时来解决这个问题,但我不知道如何解决它。我尝试上载图像时收到错误消息。错误消息是“不允许您尝试上载的文件类型”。但我认为文件类型不会导致此问题。我发现
$这个->上传->上传('image')
总是错误的。我发现这是因为
$this->\u mimes[$ext])
(在“system/libraries/Upload.php”文件中)总是给我带来空值

当我测试我的函数时,我尝试了
var\u dump($this->file\u type)并获得“图像/jpeg”

我还尝试了
var\u dump($ext)并获得“jpg”

这是Image.php文件的一部分

<?php echo form_open_multipart('/image/index');?>
  <fieldset>
    <legend>Upload Image</legend>
    <div><label>File: </label><input id="image" type="file" name="image" /></div>
    <div><label>Title: </label><input id="title" type="text" name="title" /></div>
    <div class="error">
      <?php echo $error; ?>
    </div>
  </fieldset>

  <div class="form_line"><input id="image_submit" type="submit" value="Upload Picture" class="submit" /></div>
</form>
function index()
{
  $config['upload_path']          ='./uploads/';
  $config['allowed_types']        = 'gif|jpg|png|jpeg';
  $config['max_size']             = 40960000;
  $config['max_width']            = 0;
  $config['max_height']           = 0;

  $this->load->library('upload', $config);

  if ( ! $this->upload->do_upload('image'))
    {
      $page_data = array('files' => $file_send, 'error' => $this->upload->display_errors());
      $this->load->view('media/image_upload', $page_data);
    }
  else {...}
}
这里是我找到空值的地方。这是一个CodeIgniter代码

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;
    }

    // isset($this->_mimes[$ext]) is always null
    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);
    }

    return FALSE;
}
如果你对这个问题有什么建议,我将不胜感激

如果有什么不清楚,我很抱歉。如果你需要更多的代码,我会提供他们肯定

编辑

我正在添加mimes.php

“应用程序/wbxml”,
“wmlc”=>“应用程序/wmlc”,
'dcr'=>'application/x-director',
'dir'=>'application/x-director',
'dxr'=>'application/x-director',
“dvi”=>“应用程序/x-dvi”,
“gtar”=>“应用程序/x-gtar”,
'gz'=>'application/x-gzip',
'php'=>'application/x-httpd-php',
'php4'=>'application/x-httpd-php',
'php3'=>'application/x-httpd-php',
'phtml'=>'application/x-httpd-php',
'phps'=>'application/x-httpd-php-source',
'js'=>'application/x-javascript',
“swf”=>“应用程序/x-shockwave-flash”,
'sit'=>'application/x-stuffit',
'tar'=>'application/x-tar',
'tgz'=>'application/x-tar',
“xhtml”=>“应用程序/xhtml+xml”,
'xht'=>'application/xhtml+xml',
'zip'=>数组('application/x-zip','application/zip','application/x-zip-compressed'),
“mid”=>“音频/midi”,
“midi”=>“音频/midi”,
“mpga”=>“音频/mpeg”,
“mp2”=>“音频/mpeg”,
“mp3”=>阵列(“音频/mpeg”、“音频/mpg”),
“aif”=>“音频/x-aiff”,
'aiff'=>'audio/x-aiff',
“aifc”=>“音频/x-aiff”,
“ram”=>“音频/x-pn-realaudio”,
'rm'=>'audio/x-pn-realaudio',
'rpm'=>'audio/x-pn-realaudio-plugin',
'ra'=>'audio/x-realaudio',
'rv'=>'video/vnd.rn realvideo',
“wav”=>“音频/x-wav”,
'bmp'=>'image/bmp',
'gif'=>'image/gif',
'jpeg'=>数组('image/jpeg','image/pjpeg'),
'jpg'=>数组('image/jpeg','image/pjpeg'),
'jpe'=>数组('image/jpeg','image/pjpeg'),
'png'=>数组('image/png','image/x-png'),
“tiff”=>“图像/tiff”,
“tif”=>“图像/tiff”,
'css'=>'text/css',
'html'=>'text/html',
'htm'=>'text/html',
'shtml'=>'text/html',
'txt'=>'text/plain',
“文本”=>“文本/普通”,
'log'=>数组('text/plain','text/x-log'),
'rtx'=>'text/richtext',
'rtf'=>'text/rtf',
'xml'=>'text/xml',
'xsl'=>'text/xml',
“mpeg”=>“视频/mpeg”,
“mpg”=>“视频/mpeg”,
“mpe”=>“视频/mpeg”,
'qt'=>'video/quicktime',
'mov'=>'video/quicktime',
“avi”=>“视频/x-msvideo”,
“电影”=>“视频/x-sgi-movie”,
'doc'=>'application/msword',
'docx'=>'application/vnd.openxmlformats officedocument.wordprocessingml.document',
'xlsx'=>'application/vnd.openxmlformats officedocument.spreadsheetml.sheet',
'word'=>array('application/msword','application/octet stream'),
“xl”=>“应用程序/excel”,
“eml”=>“消息/rfc822”
);
/*文件mimes.php的结尾*/

/*位置:./system/application/config/mimes.php*/
我找到了答案。这是因为mimes.php文件。之前,CodeIgniter提供了此格式的mimes.php
$mimes=array('hqx'=>'application/mac-binhex40',…
。但是,当前的CodeIgniter将格式更改为
返回数组(
'hqx'=>array('application/mac-binhex40',…
。当我更新框架时,我没有更新mimes.php文件。非常感谢Alex给我一个提示

下面是修改后的mimes.php

“应用程序/wbxml”,
“wmlc”=>“应用程序/wmlc”,
'dcr'=>'application/x-director',
'dir'=>'application/x-director',
'dxr'=>'application/x-director',
“dvi”=>“应用程序/x-dvi”,
“gtar”=>“应用程序/x-gtar”,
'gz'=>'application/x-gzip',
“gzip”=>“应用程序/x-gzip”,
'php'=>数组('application/x-httpd-php','application/php','application/x-php','text/php','text/x-php','application/x-httpd-php-source'),
'php4'=>'application/x-httpd-php',
'php3'=>'application/x-httpd-php',
'phtml'=>'application/x-httpd-php',
'phps'=>'application/x-httpd-php-source',
'js'=>array('application/x-javascript','text/plain'),
“swf”=>“应用程序/x-shockwave-flash”,
'sit'=>'application/x-stuffit',
'tar'=>'application/x-tar',
'tgz'=>数组('application/x-tar','application/x-gzip-compressed'),
'z'=>'application/x-compress',
“xhtml”=>“应用程序/xhtml+xml”,
'xht'=>'application/xhtml+xml',
'zip'=>数组('application/x-zip','application/zip','application/x-zip-compressed','application/s-compressed','multipart/x-zip'),
'rar'=>数组('application/x-rar','application/rar','application/x-rar-compressed'),
“mid”=>“音频/midi”,
“midi”=>“音频/midi”,
“mpga”=>“音频/mpeg”,
“mp2”=>“音频/mpeg”,
“mp3”=>阵列(“音频/mpeg”、“音频/mpg”、“音频/mpeg3”、“音频/mp3”),
'aif'=>数组('audio/x-aiff','audio/aiff'),
'aiff'=>数组('audio/x-aiff','audio/aiff'),
“aifc”=>“音频/x-aiff”,
“ram”=>“音频/x-pn-realaudio”,
'rm'=>'audio/x-pn-realaudio',
'rpm'=>'audio/x-pn-realaudio-plugin',
'ra'=>'audio/x-realaudio',
'rv'=>'video/vnd.rn realvideo',
“wav”=>阵列(“音频/x-wav”、“音频/wav”、“音频/wav”),
'bmp'=>数组('image/bmp'、'image/x-bmp'、'image/x-bitmap'、'image/x-xbitmap'、'image/x