CodeIgniter"不允许您尝试上传的文件类型."

Cyc*_*one 6 php codeigniter image-uploading mime-types

我经常搜索并发现很多关于这个问题的问题,遗憾的是没有一个答案对我有帮助.

我正在尝试上传png图像,我收到以下错误:

您尝试上传的文件类型是不允许的.

我正在遵循此CI指南来构建我的代码:http://codeigniter.com/user_guide/libraries/file_uploading.html

这是我得到的:

查看文件:

[..]
   <?= form_open_multipart() ?>
   <input type="file" name="userfile" size="20" />
   <br /><br />
   <input type="submit" value="upload" />
   <?= form_close() ?>
[..]
Run Code Online (Sandbox Code Playgroud)

我的控制器:

    $config['upload_path']   = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size']      = '100';
    $config['max_width']     = '1024';
    $config['max_height']    = '768';


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

        $xx = array('upload_data' => $this->upload->data());
        $mimetype= $xx['upload_data']['file_type'];

        var_dump('Mime: ' . $mimetype);
        var_dump($_FILES);

        if ( !$this->upload->do_upload())
        {
            Notice::add($this->upload->display_errors(), 'error');
        }
        else
        {
            $data['upload_data'] = $this->upload->data();
        }
Run Code Online (Sandbox Code Playgroud)

如你所见,我正在尝试var_dumpmime类型,结果是空的.

当我这样做var_dump($_FILES)时看起来一切都很好:

array(1) { ["userfile"]=> array(5) { ["name"]=> string(14) "imageofm.png" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(18) "/var/tmp/php5cDAZJ" ["error"]=> int(0) ["size"]=> int(358) } }
Run Code Online (Sandbox Code Playgroud)

而且,我得到了'png' => array('image/png', 'image/x-png'),线,在我的config/mimes.php.

但是,它确实发生在所有图像上(还没有尝试过其他扩展).

我很感激每一次尝试.

Sli*_*eam 7

只需编辑application/config/mimes.php中mimes.php文件,并用以下内容替换csv的行:

'csv' => array('application/vnd.ms-excel', 'text/anytext', 'text/plain', 'text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel')
Run Code Online (Sandbox Code Playgroud)


nan*_*216 1

将 codeigniter 2.1.0 system/libraries/upload.php 替换为 2.1.2 版本 upload.php 库可以解决该问题。希望这可以帮助