2017-02-08 12 views
0

Codeigniterで画像をアップロードすると、その名前はデータベースに保存されますが、デフォルトのフォルダには保存されません。codeigniterに画像をアップロードするとき、画像はパスフォルダに保存されません

私の "ビュー" のプロフィール

ここ
<div id="timelineBackground"> 
<?php 

{ 
    $image_properties = array('src' => base_url("uploads/" . $timeline_image),'width' => '1000px','height'=> '400px','id'=>'coverimg', 'title' => 'That was quite a night','rel' => 'lightbox'); 
    //echo img($image_properties); 

    ?> 
<div id="timelineselector"> 

<?php echo form_open_multipart('',["id"=>"form_cover"]); ?> 
<input type="hidden" name="email" value="<?php echo $email ;?>" > 

<?php echo form_upload(["name"=>"timelineimage"]); ?> 

<?php echo form_submit(["name"=>"submit","value"=>"Submit"]); ?> 

<?php echo form_close(); ?> 

</div><?php 
} 
?></div> 

は私のAjaxコード

jQuery('#form_cover').submit(function(e){ 

     e.preventDefault(); 
     var formData = new FormData(this); 
     var url= '<?php echo base_url("user/coverimage"); ?>'; 
     formData.value 
     jQuery.ajax({ 

      type: "POST", 
      url:url, 
      data: formData, 
      cache: false, 
      contentType: false, 
      processData: false, 
      success: function(data) 
      { 

       $('#coverimg').attr('src',data); 
      }, 
      error: function(data){ 
      //error function 
      } 
     });    
    }); 

私のコントローラ "ユーザー"

public function coverimage(){ 

    $config = [ 
     'upload_path' => './uploads/', 
     'allowed_types' => 'jpg|gif|png|jpeg', 
     'max_size'   => 10000000000000, 
     'max_width'   => 1024000000, 
     'max_height'   => 7680000000, 
       ]; 

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

    if(!$this->upload->do_upload('timelineimage') ) { 
    $post = $this->input->post(); 
     unset($post['submit']); 
     $upload_data = $this->upload->data(); 
    $file_name=$_FILES['timelineimage']; 


     $this->load->model('Pmodel'); 
     $this->Pmodel->timeline_upload_model($post,$file_name); 


     $image_properties = array(
     'src' => base_url("./uploads/" . $file_name['name']), 

     'width' => '200px', 
     'height'=> '200px', 
     'title' => 'That was quite a night', 
     'rel' => 'lightbox' 
); 

     // echo img($image_properties); 
echo base_url("uploads/" . $file_name['name']); 
    exit(); 
    }else { 

     $upload_error = $this->upload->display_errors(); 
     $this->load->view('admin/add_article',compact('upload_error')); 
    } 

} 

私のある画像を提出するのAjaxを使用してI'amモデル "Pmodel"

public function timeline_upload_model($arr,$arra) 
{ 

    $email=$arr['email']; 
    $image=$arra['name']; 

$data=array('timelineimage'=>$image); 

$query=$this->db->where('email',$email)->update('user_data',$data); 

    return $query; 



} 

名前だけは表示されますが、画像は表示されません。

+0

にhttp://stackoverflow.com/questions/42009648/codeigniter-cannot-upload-image/42011446#42011446 – Mohammad

+0

私は、do_uploadが動作していないだけでなく、ベースURLが画像を返すときにいくつかのエラーが発生するという問題を発見しました –

答えて

0

私は

<div id="timelineBackground"> 
<?php 

{ 

    $image_properties = array('src' => base_url("uploads/" . $timeline_image),'width' => '1000px','height'=> '400px','id'=>'coverimg', 'title' => 'That was quite a night','rel' => 'lightbox'); 
echo img($image_properties); 

    ?> 
<div id="timelineselector"> 

<?php echo form_open_multipart('user/coverimage',["id"=>"form_cover"]); ?> 
<input type="hidden" name="id" value="<?php echo $id ;?>" > 

<?php echo form_upload(["name"=>"timelineimage"]); ?> 

<?php echo form_submit(["name"=>"submit","value"=>"Submit"]); ?> 

<?php echo form_close(); ?> 

</div><?php 
} 
?></div> 

'ajax' 

    jQuery('#form_cover').submit(function(e){ 

     e.preventDefault(); 
     var formData = new FormData(this); 
     var url= '<?php echo base_url("user/coverimage"); ?>'; 
     formData.value 
     jQuery.ajax({ 

      type: "POST", 
      url:url, 
      data: formData, 
      cache: false, 
      contentType: false, 
      processData: false, 
      success: function(data) 
      { 

       $('#coverimg').attr('src',data); 
      }, 
      error: function(data){ 
      //error function 
      } 
     });    
    }); 

とコントローラ '表示'

...場合には他の誰がこれを見たい、答えを見つけ、コードを掲載:

 public function coverimage() 
    { 
    print_r($_POST); 
    print_r($_FILES); 

     $config = [ 
        'upload_path' => './uploads/', 
        'allowed_types' => 'jpg|gif|png|jpeg', 
        'max_size'   => 10000000000000, 
        'max_width'   => 1024000000, 
        'max_height'   => 7680000000, 
       ]; 
       $this->load->library('upload', $config); 
       $this->upload->initialize($config); 
       $timelineimage="timelineimage"; 
     if(!$this->upload->do_upload($timelineimage)) 
     { 
      $upload_error = $this->upload->display_errors(); 
      $this->load->view('dashboard/profile',compact('upload_error')); 


      } 
      else 
      { 

      $post = $this->input->post(); 
      unset($post['submit']); 
      //print_r($post); 

      $upload_data = $this->upload->data(); 
      //print_r($upload_data); 

      $file_name=$_FILES['timelineimage']; 
      $this->load->model('Pmodel'); 
      $this->Pmodel->timeline_upload_model($post,$file_name); 


     $image_path= base_url("uploads/".$upload_data['raw_name'].$upload_data['file_ext']); 

//echo base_url("uploads/" . $file_name['name']); 

      } 

    } 
関連する問題