相关疑难解决方法(0)

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

我遇到了一个非常奇怪的上传问题.这是相关的视图文件:

<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>
Run Code Online (Sandbox Code Playgroud)

这是我的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());
    }
}
Run Code Online (Sandbox Code Playgroud)

当我上传AVI视频时,一切正常.当我上传一个WMV视频时,我得到以下var转储:

string 'The filetype you are attempting to upload is not allowed.' (length=57)

array
  'userfile' => 
    array
      'name' …
Run Code Online (Sandbox Code Playgroud)

php codeigniter mime-types codeigniter-2

26
推荐指数
2
解决办法
5万
查看次数

在Codeigniter中上传 - 不允许您尝试上传的文件类型

我收到错误:当我尝试上传任何文件时,不允许您尝试上传的文件类型.

if(!empty($_FILES['proof_of_purchase']['name'])) {
    $config['upload_path'] = './uploads/invoices/';
    $config['allowed_types'] = 'gif|jpg|jpeg|png|pdf|bmp';
    $config['max_size'] = '3000';
    $this->load->library('upload', $config);

      // if there was an error, return and display it
    if (!$this->upload->do_upload('proof_of_purchase'))
    {
        $data['error'] = $this->upload->display_errors();
        $data['include'] = 'pages/classic-register';
    } else {
        $data['upload_data'] = $this->upload->data();
        $filename = $data['upload_data']['file_name'];
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试过很多不同的文件 - 主要是gif和jpeg,每次都会得到同样的错误.

后续代码var_dump($ _ FILES); 给我:

array(1) { ["proof_of_purchase"]=> array(5) { ["name"]=> string(28) "2010-12-04_00019.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(19) "D:\temp\php2BAE.tmp" ["error"]=> int(0) ["size"]=> int(58054) } } 
Run Code Online (Sandbox Code Playgroud)

我检查了mime配置,它包含正确的东西.例:

'jpeg'  =>  array('image/jpeg', 'image/pjpeg'),
'jpg'   =>  array('image/jpeg', 'image/pjpeg'), …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

16
推荐指数
2
解决办法
5万
查看次数

标签 统计

codeigniter ×2

php ×2

codeigniter-2 ×1

mime-types ×1