从一个功能上传图像

时间:2014-09-24 01:34:17

标签: php codeigniter

我的用户codeigniter项目有一个编辑功能,我希望能够使用这一功能上传图像,但用户指南说创建一个新功能。

我如何使用相同的edit()函数制作它。

function edit($user_id = 0) {

$this->load->model('users/model_user');

$data['title'] = "Users";
$data['base'] = config_item('HTTP_SERVER');
$data['isLogged'] = $this->user->isLogged();
$data['last_updated'] = $this->model_user->last_updated($user_id);

$data['user_id'] = $user_id;

if (!empty($this->input->post('username'))) {
    $data['username'] = $this->input->post('username');
} else {
    $data['username'] = $this->model_user->getUserByUsername($user_id);
}

if (!empty($this->input->post('firstname'))) {
    $data['firstname'] = $this->input->post('firstname');
} else {
    $data['firstname'] = $this->model_user->getUserByFirstname($user_id);
}

if (!empty($this->input->post('lastname'))) {
    $data['lastname'] = $this->input->post('lastname');
} else {
    $data['lastname'] = $this->model_user->getUserByLastname($user_id);
}

if (!empty($this->input->post('email'))) {
    $data['email'] = $this->input->post('email');
} else {
    $data['email'] = $this->model_user->getUserByEmail($user_id);
}

// User userfile

if(!empty($this->input->post('userfile'))) {
    $data['userfile'] = $this->input->post('userfile');
} else {
    $data['userfile'] = $this->model_user->getUserImage($user_id);
}

$config['upload_path'] = base_url('image/catalog/'); // base_url('image/catalog/');
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '1000';
$config['max_width']  = '1024';
$config['max_height']  = '768';

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

if (!$this->upload->do_upload()) {

    $data['error'] = $this->upload->display_errors();
    $data['header'] = $this->load->view('template/common/header', $data, TRUE);
    $data['footer'] = $this->load->view('template/common/footer', NULL, TRUE);
    return $this->load->view('template/users/users_form', $data);

} else {

    $data['upload_data'] = $this->upload->data();
    $data['header'] = $this->load->view('template/common/header', $data, TRUE);
    $data['footer'] = $this->load->view('template/common/footer', NULL, TRUE);
    return $this->load->view('template/users/users_form', $data);
}


$this->load->library('password');

$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Your Username');
$this->form_validation->set_rules('firstname', 'Your First Name');
$this->form_validation->set_rules('lastname', 'Your Last Name');
$this->form_validation->set_rules('email', 'Your Email');

if ($this->form_validation->run() == TRUE) {

    $this->model_user->editUser($user_id, $data);

    redirect('users');

} else {

$data['header'] = $this->load->view('template/common/header', $data, TRUE);
$data['footer'] = $this->load->view('template/common/footer', NULL, TRUE);

return $this->load->view('template/users/users_form', $data);

}

}

查看档案

<?php echo validation_errors('<div class="alert alert-danger">', '</div>'); ?>

<?php echo $error ;?>

<?php 
$data = array(
'role' => "form",
'class' => 'form-horizontal'
);
echo form_open('users/edit/' . $user_id, $data);
?>

<div class="form-group">
<label for="input-username" class="col-sm-2 control-label">Username</label>
<div class="col-sm-10">
<input type="text" name="username" value="<?php echo $username;?>" class="form-control">
</div>
</div>

<div class="form-group">
<label for="input-firstname" class="col-sm-2 control-label">Firstname</label>
<div class="col-sm-10">
<input type="text" name="firstname" value="<?php echo $firstname;?>" class="form-control">
</div>
</div>

<div class="form-group">
<label for="input-lastname" class="col-sm-2 control-label">Lastname</label>
<div class="col-sm-10">
<input type="text" name="lastname" value="<?php echo $lastname;?>" class="form-control">
</div>
</div>

<div class="form-group">

<label for="input-email" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="text" name="email" value="<?php echo $email;?>" class="form-control">
</div>
</div>

<div class="form-group">
<label class="col-sm-2 control-label" for="input-image"></label>
<div class="col-lg-3">
<div class="thumbnail">
<img src="<?php echo $userfile;?>">
</div>
</div>
</div>

<div class="form-group">
<label for="input-image" class="col-sm-2 control-label">Image</label>
<div class="col-sm-10">
<br>
<input type="file" name="userfile" value="<?php echo $userfile;?>" size="20">
</div>
</div>

<div class="form-group">
<div class="text-right">
<h2><a href="<?php echo base_url('users/edit_password/' . $user_id);?>">Change Your Password</h2>
<button type="submit" name="submit" class="btn btn-primary">Submit</button>
</div>
</div>

<?php echo form_close();?>

1 个答案:

答案 0 :(得分:0)

我可以通过这种方式更轻松地使用codeigniter上传图片助手。

控制器功能

function edit($user_id = 0) {

$this->load->model('users/model_user');

$data['title'] = "Users";
$data['base'] = config_item('HTTP_SERVER');
$data['isLogged'] = $this->user->isLogged();
$data['last_updated'] = $this->model_user->last_updated($user_id);

$data['user_id'] = $user_id;

if (!empty($this->input->post('username'))) {
    $data['username'] = $this->input->post('username');
} else {
    $data['username'] = $this->model_user->getUserByUsername($user_id);
}

if (!empty($this->input->post('firstname'))) {
    $data['firstname'] = $this->input->post('firstname');
} else {
    $data['firstname'] = $this->model_user->getUserByFirstname($user_id);
}

if (!empty($this->input->post('lastname'))) {
    $data['lastname'] = $this->input->post('lastname');
} else {
    $data['lastname'] = $this->model_user->getUserByLastname($user_id);
}

if (!empty($this->input->post('email'))) {
    $data['email'] = $this->input->post('email');
} else {
    $data['email'] = $this->model_user->getUserByEmail($user_id);
}

if(!empty($this->input->post('image'))) {
    $data['image'] = $this->input->post('image');
} else {
    $data['image'] = $this->model_user->getUserImage($user_id);
}

$data['image_path'] =  config_item('HTTP_CATALOG') . '/image/catalog/';

$this->load->library('password');

$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Your Username');
$this->form_validation->set_rules('firstname', 'Your First Name');
$this->form_validation->set_rules('lastname', 'Your Last Name');
$this->form_validation->set_rules('email', 'Your Email');

if ($this->form_validation->run() == TRUE) {

    $this->model_user->editUser($user_id, $data);

    redirect('users');

} else {

$data['header'] = $this->load->view('template/common/header', $data, TRUE);
$data['footer'] = $this->load->view('template/common/footer', NULL, TRUE);

return $this->load->view('template/users/users_form', $data);

}

}

查看

<?php echo validation_errors('<div class="alert alert-danger">', '</div>'); ?>

<?php 
$data = array(
'role' => "form",
'class' => 'form-horizontal'
);
echo form_open('users/edit/' . $user_id, $data);
?>

<div class="form-group">
<label for="input-username" class="col-sm-2 control-label">Username</label>
<div class="col-sm-10">
<input type="text" name="username" value="<?php echo $username;?>" class="form-control">
</div>
</div>

<div class="form-group">
<label for="input-firstname" class="col-sm-2 control-label">Firstname</label>
<div class="col-sm-10">
<input type="text" name="firstname" value="<?php echo $firstname;?>" class="form-control">
</div>
</div>

<div class="form-group">
<label for="input-lastname" class="col-sm-2 control-label">Lastname</label>
<div class="col-sm-10">
<input type="text" name="lastname" value="<?php echo $lastname;?>" class="form-control">
</div>
</div>

<div class="form-group">

<label for="input-email" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="text" name="email" value="<?php echo $email;?>" class="form-control">
</div>
</div>

<div class="form-group">
<label class="col-sm-2 control-label" for="input-image"></label>
<div class="col-lg-3">
<div class="thumbnail">
<img src="<?php echo $image_path . $image; ?>" style=" width: 100%; height: 300px;">
</div>
</div>
</div>

<div class="form-group">
<label for="input-image" class="col-sm-2 control-label">Image</label>
<div class="col-sm-10">
<br>
<input type="file" name="image" value="<?php echo $image;?>" size="20">
</div>
</div>

<div class="form-group">
<div class="text-right">
<h2><a href="<?php echo base_url('users/edit_password/' . $user_id);?>">Change Your Password</h2>
<button type="submit" name="submit" class="btn btn-primary">Submit</button>
</div>
</div>

<?php echo form_close();?>
相关问题