簡體   English   中英

無法使用Codeigniter將上傳的圖像路徑存儲在數據庫中

[英]Can't store the uploaded image path in database using codeigniter

我在google上讀過類似的查詢,在那兒我讀到有關檢查文件是否可寫,然后使用chmod()函數設置權限的信息,但是我也嘗試過,但沒有成功。 我想將圖像路徑存儲在數據庫中,然后將圖像移至上載文件夾。 圖像的路徑將為:C:/xampp/htdocs/konnect1/uploads/Hydrangeas1.jpg使用chmod()時,出現警告消息為“消息:chmod():無此類文件或目錄”。 請幫忙,因為我現在應該更改什么。

控制器頁面-> admin_c.php發布函數,在其中寫入圖像上傳代碼。

          public function create_event1()
         {
        if($this->input->post('counter') || !$this->input->post('counter'))
        {

            $count = $this->input->post('counter');
            $c = $count;
            //echo $c;          


            if($this->input->is_ajax_request())
            {
                $vardata    =   $this->input->post('vardata');
                echo $vardata;

            } 

            $g = $_POST['results'];

            $configUpload['upload_path']    = '/konnect1/uploads/';                 #the folder placed in the root of project
            $configUpload['allowed_types']  = 'gif|jpg|png|bmp|jpeg';       #allowed types description
            $configUpload['max_size']       = '0';                          #max size
            $configUpload['max_width']      = '0';                          #max width
            $configUpload['max_height']     = '0';                          #max height
            $configUpload['encrypt_name']   = false;                         #encrypt name of the uploaded file

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

            $this->upload->initialize($configUpload);   #init the upload class

            if( chmod($configUpload['upload_path'], 0755) ) 
            {
                // more code
                chmod($configUpload['upload_path'], 0777);
            }
            else
                echo "Couldn't do it."; 


            if ( ! is_writable($this->upload->do_upload('picture')))
            {
                $uploadedDetails = $this->upload->display_errors('upload_not_writable');
                echo $uploadedDetails;
            }
            else if(!$this->upload->do_upload('picture'))
            {
                $uploadedDetails    = $this->upload->display_errors();
            }
            else
            {

            $uploadedDetails    = $this->upload->data();

            //print_r($uploadedDetails);die;

            $etype = $this->input->post('etype');
            $ecategory = $this->input->post('ecategory');
            $ename = $this->input->post('ename');

            $edat_time = $this->input->post('edat_time');
            $evenue = $this->input->post('evenue');
            $sch_name0 = $this->input->post("sch_name0");
            $speaker_name0 = $this->input->post("speaker_name0");
            $sch_stime0 = $this->input->post("sch_stime0");
            $sch_etime0 = $this->input->post("sch_etime0");
            $sch_venue0 = $this->input->post("sch_venue0");
            $sch_name = $this->input->post("sch_name");
            $speaker_name = $this->input->post("speaker_name");
            $sch_stime = $this->input->post("sch_stime");
            $sch_etime = $this->input->post("sch_etime");
            $sch_venue = $this->input->post("sch_venue");
            $agenda_desc = $this->input->post("agenda_desc");

            if ((!empty($etype)) || (!empty($uploadedDetails)) || (!empty($ecategory)) || (!empty($ename)) || (!empty($edat_time)) || (!empty($evenue)) || (!empty($sch_name0)) || (!empty($speaker_name0)) || (!empty($sch_stime0)) || (!empty($sch_etime0)) || (!empty($sch_venue0)) || (!empty($sch_name)) || (!empty($speaker_name)) || (!empty($sch_stime)) || (!empty($sch_etime)) || (!empty($sch_venue)) || (!empty($agenda_desc)))
            {

                $res1 = $this->admin_m->insert($uploadedDetails);

                if($res1 == true)
                {
                    $res2 = $this->admin_m->insert1($c);

                    $lastid = $this->db->insert_id(); 

                    $data['h'] = $this->admin_m->select($lastid); 

                    //return the data in view   
                    $this->load->view('admin/event', $data);
                }
                else
                    echo "error";



            }
           }
        }   


      }

模型頁-> admin_m.php

<?php 

   class Admin_m extends CI_Model 
   {

      function __construct() 
      { 
        parent::__construct();
        $this->load->database();        
      } 


      public function insert($image_data = array())
      {

        //$data1 = explode('/',$imge_data);
        //$data2 = in_array("konnect1", $data1);          

        $data = array(

                'ename' => $this->input->post('ename'),
                'eimg' => $this->input->post('eimg'),
                'edat_time' => $this->input->post('edat_time'),
                'evenue' => $this->input->post('evenue'),
                'sch_name' => $this->input->post('sch_name0'),
                'speaker_name' => $this->input->post('speaker_name0'),
                'sch_stime' => $this->input->post('sch_stime0'),
                'sch_etime' => $this->input->post('sch_etime0'),
                'sch_venue' => $this->input->post('sch_venue0'),
                'etype' => $this->input->post('etype'),
                'ecategory' => $this->input->post('ecategory'),             
                'agenda_desc' => $this->input->post('agenda_desc'),
                'eimg' => $image_data['full_path']
                );

        $result = $this->db->insert('event',$data);

        if($result == true)
            return true;
        else
            echo "Error in first row";
      }

      public function insert1($c)
      {
            for($i=0; $i<=$c; $i++)  
            {
                 $sql = array(
                        'sch_name' => $this->input->post('sch_name')[$i],
                        'speaker_name' => $this->input->post('speaker_name')[$i],
                        'sch_stime' => $this->input->post('sch_stime')[$i],
                        'sch_etime' => $this->input->post('sch_etime')[$i],
                        'sch_venue' => $this->input->post('sch_venue')[$i]
                    ); 

                    //$sql = "INSERT INTO event(sch_name,speaker_name,sch_stime,sch_etime,sch_venue) VALUES(($this->input->post('sch_name')[$i]),($this->input->post('speaker_name')[$i]),($this->input->post('sch_stime')[$i]),($this->input->post('sch_etime')[$i]),($this->input->post('sch_venue')[$i]))";

                    $res = $this->db->insert('event',$sql);

            } 

            if ($res == true)
                return true;
            else
                echo "Error from first row";
      }



      public function select($lastid)  
      {  
        //data is retrive from this query  
        $query = $this->db->get('event');  
        return $query;  
      }


   }

?>

供參考,還附有型號代碼。

根據錯誤消息,似乎PHP無法找到目錄。

請首先使用PHP函數is_dir()首先驗證PHP是否可以將該路徑識別為文件夾。

一旦返回true,就可以繼續使用它。

同樣在您的上傳路徑中,您以/開頭,這意味着您的項目位於OS的根目錄中,我認為該位置不正確。

從終端cd到項目目錄,然后運行命令pwd並獲取當前的工作目錄,然后在考慮項目位置后使用正確的上載路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM