首页 > 解决方案 > 上传图片它不工作codeigniter

问题描述

我在 1 个 htdocs 目录中有 2 个网站。结构是这样的

它的主目录结构如下(名称:Quartiere):

夸蒂埃

第二个网站目录是 _admin 具有相同的结构(默认 CodeIgniter 结构)。

我正在尝试将文件从 _admin 上传到主目录资产文件夹,但由于某种原因,它不起作用。我尝试了其他帖子的其他答案,但没有任何帮助。

我尝试了什么:

  1. 将“用户文件”放入do_upload
  2. 检查表单是否是多部分的(它是)

我检查了什么:

  1. 如果路径很好(它是)
  2. 如果照片尺寸小于 2048(是)

_admin 控制器:

public function add_product(){

        if(!$this->session->userdata('logged_in')){
            redirect('users/login');
        }
        $data['title'] = 'Adauga Produs';
        $data['categories'] = $this->category_model->get_categories();

        $this->form_validation->set_rules('name','Nume','required');
        $this->form_validation->set_rules('category','Categorie','required');
        $this->form_validation->set_rules('ingredients','Ingrediente');
        $this->form_validation->set_rules('price','Pret','required');
        $this->form_validation->set_rules('grams','Gramaj','required');

        if($this->form_validation->run() === FALSE){
            $this->load->view('templates/header');
            $this->load->view('products/adauga', $data);
            $this->load->view('templates/footer');
        }else{
            //upload image
            $config['upload_path'] = 'http://localhost/quartiere/assets/images';
            $config['allowed_types'] = 'jpg|png|jpeg';
            $config['max_size'] = '2048';
            $config['max_width'] = '2000';
            $config['max_height'] = '2000';

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

            if(!$this->upload->do_upload('userfile')){
                $errors = array('error' => $this->upload->display_errors());
                $food_image = 'noimage.png';
            }else{
                $data = array('upload_data' => $this->upload->data());
                $food_image = $_FILES['userfile']['name'];
            }

            $this->food_model->add_product($food_image);
            redirect('produse/adauga');
        }
    }

_admin 查看:

    <?php echo validation_errors();?>
<?php echo form_open_multipart('products/add_product');?>
<div class="row">
    <div class="col-md-4 col-md-offset-4">
        <h1 class="text-center">
            <?php echo $title; ?>
        </h1>
        <div class="form-group">
            <input type="text" name="name" class="form-control" placeholder="Nume Produs" required/>
        </div>
        <div class="form-group">
            <select class="form-control" name="category" required>
                <?php foreach($categories as $category):?>
                    <option value="<?php echo $category['id'];?>"><?php echo $category['category_name'];?></option>
                <?php endforeach;?>
            </select>
        </div>
        <div class="form-group">
            <label>Bar:</label><br>
            Da <input type="radio" name="bar" class="from-control" value="1"/>
            Nu <input type="radio" name="bar" class="from-control" value="0"/>
        </div>
        <div class="form-group">
            <input type="text" name="ingredients" class="form-control" placeholder="Ingrediente"/>
        </div>
        <div class="form-group">
            <input type="number" name="grams" class="form-control" placeholder="Gramaj"/>
        </div>
        <div class="form-group">
            <label>Poza:</label>
            <input type="file" name="userfile" size="10"/>
        </div>
        <div class="form-group">
            <input type="number" name="price" class="form-control" placeholder="Pret" required/>
        </div>
        <button type="submit" class="btn btn-success btn-block">Adauga Produs</button>
    </div>
</div>
<?php form_close(); ?>

标签: phpcodeigniterupload

解决方案


您可以将上传路径设为 - '../assets/images'- 或 - $_SERVER['DOCUMENT_ROOT'].'/quartiere/assets/images'。无论哪种方式都很好。


推荐阅读