我正在尝试使用codeigniter函数上传两个文件。 其中一个文件应该是强制性的,一个应该是可选的。
我使用下面的代码上传这些文件,但我无法弄清楚如何制作一个可选的和一个强制的。我尝试对下面的代码进行了一些修改,但是我遇到了很多错误。我是codeigniter的新手。
即使是下面用于处理上传的代码也可能不合适,但它正在运作。
$config['upload_path'] = 'uploads/';
$path=$config['upload_path'];
$config['allowed_types'] = '*';
$this->load->library('upload');
$i=0;
foreach ($_FILES as $key => $value)
{
if (!empty($key['name']))
{
$this->upload->initialize($config);
if (!$this->upload->do_upload($key))
{
$errors = $this->upload->display_errors();
$this->session->set_flashdata('error', $errors);
redirect(base_url().'upload', 'refresh');
}
else
{
$data = array('upload_data' => $this->upload->data());
$p[$i] = $this->upload->data();
}
}
$i++;
} //endforeach
if(empty($errors)){
//if there are no errors, write it into the database
$data = array('user_id'=>$this->session->userdata('id'),
'name'=>$this->input->post('name'),
'screenshot'=>$p[1]['file_name'],
'model'=> $p[0]['file_name'],
'created'=>date('Y-m-d H:i:s')
);
if($this->usermodel_model->save($data)){
//success
redirect(base_url().'dashboard?success');
}else{
//failed
redirect(base_url().'upload');
}
}
答案 0 :(得分:0)
Sohanmax投入$ i ++;在if(!empty($ key ['name'])){}之内,在结束foreach之后检查if($ i!= 0)if false是否显示错误,希望它能正常工作。