CodeIgniter:“不允许您尝试上传的文件类型。”

【字号: 日期:2024-01-20浏览:37作者:雯心
如何解决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 occuredvar_dump($this->upload->display_errors(’’,’’));var_dump($_FILES); } else {// Upload successfulvar_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:wamptmpphp2333.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上传。在其他开发人员的计算机上,没有文件上传。在另一台开发人员的计算机上,所有受支持的文件都将上载。这些是浏览器还是服务器问题?

相关文章: