CodeIgniter上传失败 - 不允许使用filetype

时间:2018-05-19 12:40:33

标签: php codeigniter codeigniter-3

当我尝试上传MP4电影文件时,我一直收到错误The filetype you are attempting to upload is not allowed

这是我的上传功能

public function upload_post() {
        $config['upload_path'] = ROOT_DIR . $dataBasePath;
        $config['allowed_types'] = 'avi|mov|mp4|jpeg|jpg|png';
        $config['remove_spaces'] = true;
        $config['max_size'] = '80000';
        $config['encrypt_name'] = true;
        $this->upload->initialize($config);
        if ($this->upload->do_upload('userFile')) {
            $uploadData = $this->upload->data();
            if ($uploadData) {
                $this->response([
                   'data' => $uploadData
                ], REST_Controller::HTTP_OK);
            } else {
                $this->response([
                    'status' => false,
                    'message' => 'failed'
                ], REST_Controller::HTTP_CONFLICT);
            }
        } else {
            var_dump($_FILES);
            die();
            $this->response([
                'status' => false,
                'errors' => ['error' => $this->upload->display_errors()]
            ], REST_Controller::HTTP_CONFLICT);
        }
}

当我上传文件和var_dump($_FILES)数据时,如果上传失败,这就是结果

array (size=1)
  'userFile' => 
    array (size=5)
      'name' => string '1-video.mp4' (length=11)
      'type' => string '' (length=0)
      'tmp_name' => string '' (length=0)
      'error' => int 1
      'size' => int 0

var_dump(get_mime_by_extension($_FILES['userFile']['name']))的结果如下

'video/mp4'

我还检查了我的mimes.php文件,我有完整的

'mp4'   =>  array('video/mp4', 'application/octet-stream'),

我不知道我还应该做什么或检查以便成功上传文件?上传图片工作正常。  如果您需要任何其他信息,请告诉我,我会提供。谢谢

3 个答案:

答案 0 :(得分:1)

在我的配置文件夹的mime类型列表中添加了数组:

'mp4' => array('video/mp4', 'application/octet-stream'),

答案 1 :(得分:1)

  

这正在我的代码中完美地上传文件移动到我的文件夹。

<强>控制器

COPY my_table
FROM '/path/to/my_file'
ENCODING 'LATIN1'

答案 2 :(得分:0)

将mp4更改为MP4

String regex = "value\\s*=\\s*[\"']<s:message\\s+code\\s*=\\s*[\"']([^\"']+)[\"']\\s*\\/>";