【问题标题】:Upload Helper Codeigniter problems. No upload the image上传 Helper Codeigniter 问题。不上传图片
【发布时间】:2017-02-25 02:30:49
【问题描述】:

没有上传图片我在使用 Upload Helper CodeIgniter 时做错了什么。快把我逼疯了。

查看

<?php echo form_open_multipart('http://work/npanel/users/save'); ?>
<div class="form-group">
    <?php echo form_label('Name'); ?>
    <?php 

    $data_name = array(
      'name' => 'name',
      'class' => 'form-control',
    );

    echo form_input($data_name);
    ?>
</div>
<div class="form-group">
    <?php echo form_label('Lastname'); ?>
    <?php 

    $data_lastname = array(
      'name' => 'lastname',
      'class' => 'form-control',
    );

    echo form_input($data_lastname);
    ?>
</div>
<div class="form-group">
    <?php echo form_label('Picture'); ?>
    <?php

    $data_upload = array(
      'type' => 'file',
      'name' => 'image'
    );
    echo form_upload($data_upload);
    ?>
</div>

<?php
$data_hidden = array(
  'id' => $id
);

echo form_hidden($data_hidden);
?>

<?php
$send = array(
  'class' =>'btn-primary',
  'type' =>'submit',
  'value' =>'Save'
);

echo form_submit($send);
?>

<?php echo form_close(); ?>

控制器

public function save($name, $lastname, $id, $image)
{
    $name = $this->input->post('name');
    $lastname = $this->input->post('lastname');
    $id = $this->input->post('id');
    $image = $this->input->post('image');

    $this->load->model('User_model');
    $last_id = $this->User_model->save($name, $lastname, $id, $image);

    $config['upload_path'] = '/assets/img/users/';
    $config['allowed_types'] = 'jpg|png|gif';
    $config['remove_spaces'] = TRUE;
    $config['max_size'] = '2048';

    $this->load->library('upload', $config);
    $this->upload->do_upload("image");
    $t = $this->upload->data;

    $this->load->model('Images_model');
    $this->Images_model->setImage($t, $last_id);

    redirect('http://work.com/npanel/users');
}

不保存图像'assets/img/users'文件夹并且不生成文件名。我做错了什么?

【问题讨论】:

  • 为什么你在表单操作中使用了http。它应该是 controller_name/action_name 与重定向相同。为什么要在save function 中传递参数。您的请求是否发布在save function
  • 删除起始斜线并尝试`$config['upload_path'] = 'assets/img/users/';`
  • AH Jebbon - 我已经尝试过两种方式。使用 http 和 as Controller> 操作。这是一个考验。它不是那样工作的。那么无论发生什么我都做错了。
  • devpro - 它不起作用。我进行了更改,但仍然没有保存或显示文件名。

标签: php codeigniter upload frameworks


【解决方案1】:

在您的 form_open_multipart('users/save') 上查看时,您只需要控制器名称和功能

如果你想http://www.codeigniter.com/user_guide/libraries/form_validation.html,你可以使用表单验证

确保您已在 config.php 中设置了 base_url

config.php

$config['base_url'] = 'http://work/npanel/';

控制器功能

文件名Users.php的首字母只能大写

class Users extends CI_Controller {    

    public function __construct() {
        parent::__construct();
        $this->load->library('upload');
        $this->load->model('user_model');
        $this->load->model('images_model');
    }

    public function save($name,$lastname,$id,$image) {     
        $name = $this->input->post('name');
        $lastname = $this->input->post('lastname');
        $id = $this->input->post('id');
        $image = $this->input->post('image');   

        $last_id = $this->user_model->save($name, $lastname, $id, $image);

        $config['upload_path'] = './assets/img/users/';
        //$config['upload_path'] = FCPATH . '/assets/img/users/';
        $config['allowed_types'] = 'jpg|png|gif';
        $config['remove_spaces'] = TRUE;
        $config['max_size']    = '2048';

        $this->upload->initialize($config);

        $this->upload->do_upload("image");

        $t = $this->upload->data; 

        $this->images_model->setImage($t['file_name'], $last_id);

        redirect('users/save');     

    }

}

在查看您的论坛打开时,应该只有控制器名称和功能,如果在文件夹中,您还可以输入文件夹名称

<?php echo form_open_multipart('users/save'); ?>

<?php echo form_open_multipart('if_in_folder_name/users/save'); ?>

【讨论】:

  • 成功了。我的补丁是 Use the 并且它有效。非常感谢大家。
  • @NicolasMaximowicz 不要忘记投票或接受答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 2011-06-08
  • 2012-01-22
相关资源
最近更新 更多