【问题标题】:Codeigniter: post is not working in formCodeigniter:帖子无法正常工作
【发布时间】:2016-05-06 03:19:30
【问题描述】:

我正在将图像上传到“图像”目录,并将一些信息上传到我在 codeigniter 中的数据库。但是当我在完成表单后点击提交按钮时,它什么也没有发布。它给出了没有发布任何输入的错误(与错误消息的含义不同)。如果有人可以请查看此代码,并告诉我为什么它不起作用。先感谢您。这是我的控制器代码:

<?php       
       public function create()
       {

            // image1
            $ImageName = $_FILES['image']['name'];
            $imageSize= $_FILES['image']['size'];
            $imageSource = $_FILES['image']['tmp_name']; 
            move_uploaded_file($_FILES['image']['tmp_name'], "images/$ImageName");
            $this->create_thumb($ImageName);
            $this->compress($ImageName, $imageSize, "images/$ImageName");

            // image2
            if ($this->input->post('image2'))
            {
                $ImageName2 = $_FILES['image2']['name'];
                $imageSize2= $_FILES['image2']['size'];
                $imageSource2 = $_FILES['image2']['tmp_name']; 
                $this->compress($ImageName2, $imageSize2, $imageSource2);
            }
            // image3
            if ($this->input->post('image3'))
            {
                $ImageName3 = $_FILES['image3']['name'];
                $imageSize3= $_FILES['image3']['size'];
                $imageSource3 = $_FILES['image3']['tmp_name']; 
                $this->compress($ImageName3, $imageSize3, $imageSource3);
            }
            // image4
            if ($this->input->post('image4'))
            {
                $ImageName4 = $_FILES['image4']['name'];
                $imageSize4= $_FILES['image4']['size'];
                $imageSource4 = $_FILES['image4']['tmp_name']; 
                $this->compress($ImageName4, $imageSize4, $imageSource4);
            }

            $this->news_model->set_news();
            $this->load->view('News/success');

    }

?>

这是我的查看代码:

      <div class="content">
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-12">
                <div class="card">
                    <div class="content">
                        <form action="<?php echo base_url();?>index.php/news/create/" enctype="multipart/form-data" method="post" accept-charset="utf-8">
                            <div class="row">
                                <div class="col-md-8">
                                    <div class="form-group">
                                        <label>Сарлавха:</label>
                                        <input type="text" name="title" class="form-control" placeholder="Сарлавха">
                                    </div>
                                </div>
                                <div class="col-md-4">
                                    <div class="form-group">
                                        <label>Автомобил тури:</label>
                                        <select name="category" class="form-control">
                                                <option value="yuk">Юк</option>
                                                <option value="kichik">Кичик тижорат</option>       
                                                <option value="yengil">Енгил</option>
                                                <option value="maxsus">Махсус техника</option>
                                                <option value="tyagach">Тягач</option>
                                                <option value="prisep">Прицеп</option>
                                        </select>
                                    </div>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col-md-4">
                                    <div class="form-group">
                                        <label>Нархи:</label>
                                        <input type="number" name="price" class="form-control" placeholder="Нархи">
                                    </div>
                                </div>
                                <div class="col-md-8">
                                    <div class="form-group">
                                        <label>Исми ва шарифи:</label>
                                        <input type="text" name="name" class="form-control" placeholder="Исми ва шарифи">
                                    </div>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col-md-4">
                                    <div class="form-group">
                                        <label>Телефон рақам:</label>
                                        <input type="text" name="telno" class="form-control" value="+998" placeholder="Телефон рақам">
                                    </div>
                                </div>
                                <div class="col-md-8">
                                    <div class="form-group">
                                        <label>Жойи:</label>
                                        <select name="location" class="form-control">
                                                <option value="Қорақалпоғистон Республикаси">Қорақалпоғистон Республикаси</option>
                                                <option value="Бухоро вилояти">Бухоро вилояти</option>
                                                <option value="Жиззах вилояти">Жиззах вилояти</option>      
                                                <option value="Қашқадарё вилояти">Қашқадарё вилояти</option>
                                                <option value="Навоий вилояти">Навоий вилояти</option>
                                                <option value="Наманган вилояти">Наманган вилояти</option>
                                                <option value="Сурхондарё вилояти">Сурхондарё вилояти</option>
                                                <option value="Сирдарё вилояти">Сирдарё вилояти</option>
                                                <option value="Тошкент вилояти">Тошкент вилояти</option>
                                                <option value="Фарғона вилояти">Фарғона вилояти</option>
                                                <option value="Хоразм вилояти">Хоразм вилояти</option>
                                                <option value="Тошкент шаҳар">Тошкент шаҳар</option>
                                        </select>
                                    </div>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col-md-12">
                                    <div class="form-group">
                                        <label>Қўшимча маълумот:</label>
                                        <textarea rows="5" name="info" class="form-control" placeholder="Қўшимча маълумот" ></textarea>
                                    </div>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label>Асосий расмни танланг:</label>
                                        <input type="file" name='image' class="form-control" accept="image/*" >
                                    </div>
                                </div>
                                                                        <div class="col-md-6">
                                    <div class="form-group">
                                        <label>Қўшимча расмни танланг:</label>
                                        <input type="file" name='image2' class="form-control" accept="image/*" >
                                    </div>
                                </div>
                            </div>

                            <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label>Қўшимча расмни танланг:</label>
                                        <input type="file" name='image3' class="form-control" accept="image/*" >
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label>Қўшимча расмни танланг:</label>
                                        <input type="file" name='image4' class="form-control" accept="image/*" >
                                    </div>
                                </div>
                            </div>

                            <button type="submit" class="btn btn-info btn-fill pull-right" name="submit" value="submit">Юклаш</button>
                            <div class="clearfix" ></div>
                        </form>
                    </div>
                </div>
            </div>


        </div>
    </div>
</div>

【问题讨论】:

  • 控制器应该被Class news extends CI_Controller包围
  • 把 from 动作改成这个 /news/create/
  • 试试这个,让你知道文件数据是否返回。echo"&lt;pre&gt;";print_r($_FILE);exit;这将打印文件数据。
  • @Tamil 类名和文件名的第一个字母应全部为大写,如此处所述codeigniter.com/user_guide/general/…
  • 您必须更改您的控制器代码,如他们的答案中定义的@Muhammad Usman。

标签: php codeigniter


【解决方案1】:

试试这个进行调试,首先检查 $_FILES 是否有任何数据。

print_r($_FILES);

如果它有任何数据,然后尝试改变条件。而是

if ($this->input->post('image2')){

使用以下

if( isset( $_FILES['image']['name']) and $_FILES['image']['name'] != '' ) {
    // Your code
} 

【讨论】:

    【解决方案2】:

    你的控制器应该是这样的

    <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
    
       class Controller_name extends CI_Controller{
       public function __construct(){
        parent::__construct();
    
        $this->load->model('your_model');
        $this->load->library('upload'); 
    }
    
      public function function_name(){
            if($this->input->post('submit')){
          /* Your Function */
    
            }
      OR Use 
        if($_POST){
          /* Your Function */
    
            }
    
           $this->load->view('News/success');                                           
       }
    
    • 控制器名称应以大写字母开头

    【讨论】:

      【解决方案3】:

      if ($this-&gt;input-&gt;post('image3')){ /* ... */ } 是错误的。 PHP 不会看到上传的文件。检查它们为:if (array_key_exists($_FILES, 'image3')){ /* ... */ }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-28
        相关资源
        最近更新 更多