帮助使用codeigniter上传文件

时间:2011-05-05 21:04:43

标签: php codeigniter file-upload upload multipartform-data

我正在尝试使用PHP和codeigniter上传文件。我的问题是我收到了一个错误

  

您没有选择要上传的文件。

我使用以下代码,

    $config['upload_path'] = "./media/uploads/cv";
            $config['allowed_types'] = 'pdf|doc|docx';
            $config['max_size'] = '1000';

            $this->upload->initialize($config);
            $this->upload->do_upload('cvfile');
            if($this->upload->display_errors())
            {
                $data['error'] = $this->upload->display_errors();
                die(print_r($data['error']));
                $this->template->build('/users/candidate', $data);
                return;
            }
            else
            {
                die(print_r($this->upload->data()));
            }

在我的HTML中,我有一个多部分表单,并且在该表单中我使用以下代码,

<input type="file" class="small" id="cvfile" value="" name="cvfile">

为什么我会收到上述错误?

2 个答案:

答案 0 :(得分:1)

这表示PHP函数is_uploaded_file表示名称为cvfile的上传文件不存在。您应该检查您的multipart / form声明并验证它是否有效,并确保您的PHP设置允许您将上传的文件写入临时文件夹。

答案 1 :(得分:0)

查看:

<?php echo form_open_multipart('home/.....');?>//going to next page 
      <input type="file" name="cvfile" />
</form>

控制器:

$config['upload_path']   = './path'; // put here your path 
$config['allowed_types'] = 'pdf|doc|docx';  
$config['max_size']      = '4096';      

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

if (!$this->upload->do_upload("cvfile")) {
    echo $this->upload->display_errors(); die();
    $this->data['error'] = array('error' => $this->upload->display_errors());
} else {
    $upload_result = $this->upload->data();
    print_r($upload_result['file_name']);//or print any valid
}