在codeigniter中上传图片

时间:2017-08-18 09:48:02

标签: php codeigniter

我正在尝试在codeigniter中上传图片,但我遇到了问题,$ this-> upload-> do_upload('imgname')。如果条件没有执行,只有elese执行并显示错误信息是'你没有选择要上传的文件'。但是在删除所有代码中的表单上传时,它会完美执行....

控制器:

public function add_news()
    {
            $post = $this->input->post();

            unset($post['submit']);

            $this->load->model('Adminmodel','addNews');
            if(!is_dir('uploads'))
            {
                mkdir(base_url().'uploads',0777,true);
            }
            if(!is_dir('uploads/news'))
            {
                mkdir('uploads/news',0777,true);
            }


            $config = [ 
                        'upload_path'=>'uploads/news',
                        'allowed_types'=>'png|jpg|jpeg|gif',
                        'encrypt_name'=>'0777',
                      ];

            $this->load->library('upload', $config);
            if($this->upload->do_upload('newsimg'))
            {
                $data = $this->upload->data();
                $file_path = base_url().'uploads/news/'.$data["raw_name"].$data["file_ext"];
                $post['newsimg'] = $file_path;
                //$this->revEdit->reg_info($id,$post);
                $post['posted'] = date('d-m-Y');
                $this->addNews->store_news($post);
                $this->session->set_flashdata('newsAlert','Yeh! News Added Successfully.');
                redirect('Admin/news');
            }
            else
            {

                $newsdata = $this->addNews->news_list();
                $upload_error = $this->upload->display_errors();


                $this->load->view('Admin/news',compact('upload_error','newsdata'));
            }}

视图:

<?=form_open('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>

    <div class="row">
      <div class="col-sm-12">
        <div class="form-group">
          <label>News Heading</label>
          <?=form_input(['name'=>'title','class'=>'form-control','placeholder'=>'Enter News Title','value'=>set_value('title')])?>


        </div> 
        <div class="form-group">
          <label>News Details</label>
          <?=form_textarea(['name'=>'body','class'=>'form-control','placeholder'=>'Enter News Body','value'=>set_value('body')])?>


        </div>
              <div class="form-group col-sm-3">
                <div class="fileUpload btn btn-primary" data-toggle="tooltip" data-placement="top" title="PDF file only">
                  <span><i class="fa fa-cloud-upload" aria-hidden="true"></i>&nbsp;Select File&nbsp;<span id="Percentage" class="percentage text-center"></span></span>
                  <?=form_upload(['name'=>'newsimg','class'=>'upload','id'=>'file1','onchange'=>'loadPdf(event)'])?>

                </div>
              </div>

               <div class="col-sm-12">
                <div id="myProgress" class="progress">
                  <div id="myBar" class="bar progress-bar" role='progressbar'>  
                  </div>
                </div>
              </div>        
      </div>
    </div>
  </div>
  <div class="modal-footer">
    <?=form_reset('reset','Reset',['class'=>'btn btn-md btn-primary'])?>
    <?=form_submit('submit','Post',['class'=>'btn btn-md btn-success'])?>
  </div>
<?=form_close()?>

模型:

public function store_news($array)
{
    return $this->db->insert('tbl_news', $array);
}

4 个答案:

答案 0 :(得分:1)

您需要使用form_open_multipart代替form_open,以便{/ 1}}可以在表单中添加

更改

enctype

为:

<?=form_open('Admin/add_news',['class'=>'form'],['aid'=>$this->session->userdata('adminId')])?>

答案 1 :(得分:1)

您没有使用with codecs.open ("F:\\New folder\\output%i_%i.txt" % (i,j), "w","utf-8") as text_file: 试试这个

enctype='multipart/form-data'

答案 2 :(得分:1)

您需要使用multipart / form-data进行文件上传。 因此,请使用form_open_multipart而不是form_open。

echo form_open_multipart(&#39; Admin / add_news&#39;);

答案 3 :(得分:-1)

function upload_add($ name){$ this-&gt; load-&gt; helper('form'); $ config ['upload_path'] ='upload / add_image /'; $ config ['allowed_types'] ='gif | jpg | png'; $ config ['max_size'] ='30000'; $ config ['max_width'] ='102400'; $ config ['max_height'] ='76800'; $ this-&gt; load-&gt; library('upload',$ config); $这 - &GT; upload-&GT;初始化($配置); if(!$ this-&gt; upload-&gt; do_upload($ name)){$ data = array('msg'=&gt; $ this-&gt; upload-&gt; display_errors()); } else {$ data = array('msg'=&gt;“success”); $ databasea ['upload_data'] = $ this-&gt; upload-&gt; data(); $这 - &GT;负载&GT;库( 'image_lib'); return $ databasea ['upload_data'] ['file_name']; } return''; }