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