codeigniter上载图像和其他数据
我有一个表单正在提交,用户有能力上传该表单中的图片,然后提交整个表单。我在codeigniter网站上找到了一个显示上传表单的教程(只用于上传,不包括其他数据)。链接是:。如何提交表单,然后上载文件,同时将其他详细信息上载到数据库中的其他表?您可以将表单中的其他数据以及文件表单传递给控制器,如codeigniter上载图像和其他数据,codeigniter,Codeigniter,我有一个表单正在提交,用户有能力上传该表单中的图片,然后提交整个表单。我在codeigniter网站上找到了一个显示上传表单的教程(只用于上传,不包括其他数据)。链接是:。如何提交表单,然后上载文件,同时将其他详细信息上载到数据库中的其他表?您可以将表单中的其他数据以及文件表单传递给控制器,如 <?php echo form_open_multipart('upload/do_upload');?> <input type="text" name="someField"
<?php echo form_open_multipart('upload/do_upload');?>
<input type="text" name="someField" value="" />
<input type="file" name="userfile" size="20" />
<input type="submit" value="upload" />
</form>
你的意思是这样的吗?下面是一个例子
function add_staff(){
$this->load->library('form_validation');
$this->load->helper(array('form', 'url'));
// field name, error message, validation rules
$this->form_validation->set_rules('name', 'Full name', 'trim|required');
$this->form_validation->set_rules('designation', 'Last Name', 'trim|required');
if($this->form_validation->run() == FALSE)
{
$data['main_content'] = 'staff/add_staff';
$this->load->view('admin/template',$data);
}
else
{
$config['upload_path'] = 'uploads/staff/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$this->load->library('upload', $config);
$this->upload->initialize($config);
if ( ! $this->upload->do_upload('file'))
{
$data['error'] = array('error' => $this->upload->display_errors());
$new_staff = array(
'name' => $this->input->post('name'),
'designation' => $this->input->post('designation'),
'phone' => $this->input->post('phone'),
'email' => $this->input->post('email'),
'address' => $this->input->post('address'),
'description' => $this->input->post('description'),
'status' => $this->input->post('status')
);
}
else
{
$file_data = $this->upload->data('file');
$new_staff = array(
'name' => $this->input->post('name'),
'designation' => $this->input->post('designation'),
'phone' => $this->input->post('phone'),
'email' => $this->input->post('email'),
'address' => $this->input->post('address'),
'photo' => $file_data['file_name'],
'description' => $this->input->post('description'),
'status' => $this->input->post('status')
);
}
if($this->staff_model->add_staff($new_staff)):
$this->session->set_flashdata('success', 'Staff added Sucessfully !!');
endif;
redirect('admin/staff');
}
}
Image MOO是一个优秀的库,可以动态完成图像操作 e、 g要将上传的图像调整到特定路径,您只需这样做
public function thumbnailer($uploader_response,$field_info,$files_to_upload)
{
$this->load->library('image_moo');
$file_uploaded=$field_info->upload_path.'/'.$uploader_response[0]->name;
$thumbnails=$field_info->upload_path.'/thumbnails/'.$uploader_response[0]->name;
$cart_thumbnails=$field_info->upload_path.'/cart_thumbnails/'.$uploader_response[0]->name;
$this->image_moo->load($file_uploaded)->resize(400,250)->save($thumbnails,false);
}
希望这有帮助 这样行吗?因为有一个完整的上传文件的例子,我可以检查图像的类型和所有。那么我应该将$somefield传递给该方法吗?抱歉,sujeet,但这段代码的目的是什么?目前还不清楚它的用途(我也是CI新手)(1)如果不是isset($\u POST),则重定向到表单(2)如果isset($\u POST)并满足验证要求,则上载文件并调用模型以插入数据库。用于添加和编辑带有图像的表单。如果编辑时提供图像,则替换图像。如果没有,请使用当前图像
public function thumbnailer($uploader_response,$field_info,$files_to_upload)
{
$this->load->library('image_moo');
$file_uploaded=$field_info->upload_path.'/'.$uploader_response[0]->name;
$thumbnails=$field_info->upload_path.'/thumbnails/'.$uploader_response[0]->name;
$cart_thumbnails=$field_info->upload_path.'/cart_thumbnails/'.$uploader_response[0]->name;
$this->image_moo->load($file_uploaded)->resize(400,250)->save($thumbnails,false);
}