如何解决CodeIgniter:“不允许您尝试上传的文件类型”
您正在使用Firefox,不是吗?
您可以尝试查看system/libraries/Upload.PHP
第199行:
$this->_file_mime_type($_FILES[$field]);
将该行更改为:
$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();
然后上传您的.wmv
文件。它会显示类似application/octet-stream
或类似的内容。将其添加到您的中mimes.PHP
。希望这个帮助=)
解决方法
我遇到一个非常奇怪的上传问题。这是相关的视图文件:
<form action="http://localhost/index.php/temp/upload/" method="post" enctype="multipart/form-data">
<fieldset>
<input type="file" name="userfile"/>
<input type="submit" value="Upload"/>
</fieldset>
</form>
这是我的temp
控制器的upload()
方法:
public function upload()
{
$config['upload_path'] = FCPATH . 'uploads' . DIRECTORY_SEPARATOR;
assert(file_exists($config['upload_path']) === TRUE);
$config['allowed_types'] = 'avi|mpg|mpeg|wmv|jpg';
$config['max_size'] = '0';
$this->load->library('upload',$config);
if ($this->upload->do_upload('userfile') === FALSE)
{
// Some error occured
var_dump($this->upload->display_errors('',''));
var_dump($_FILES);
}
else
{
// Upload successful
var_dump($this->upload->data());
}
}
当我上传AVI视频时,一切正常。当我上传WMV视频时,会收到以下var转储:
string 'The filetype you are attempting to upload is not allowed.' (length=57)
array
'userfile' =>
array
'name' => string 'wmv.wmv' (length=7)
'type' => string 'video/x-ms-wmv' (length=14)
'tmp_name' => string 'C:\wamp\tmp\php2333.tmp' (length=23)
'error' => int 0
'size' => int 83914
“ wmv”扩展名被解释为MIME类型:video/x-ms-wmv
。这应该没问题,因为我的config / mimes.php具有以下内容:
'wmv' => array('video/x-ms-wmv','audio/x-ms-wmv')
当我尝试上传其他文件时,情况与此类似。到目前为止,似乎唯一起作用的是我的测试AVI视频。
任何想法可能有什么问题吗?
更新1:
我的机器上只有AVI上传。在其他开发人员的计算机上,没有文件上传。在另一台开发人员的计算机上,所有受支持的文件都将上载。这些是浏览器还是服务器问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。