2017-02-28 31 views
0

我上传图像与帮助阿贾克斯,也显示它。现在我什么想要实现的是,只要用户选择图像,它应该在div中可见,但当我尝试上传图像时,第一次数据库为空时,它没有显示出我运行的数据正在被保存到数据库中但我看不到图像,你能告诉我我在这里做错了什么吗?我上传的图像与阿贾克斯的帮助,也显示它在一个div,但它不会显示图像第一次图像上传在php

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

       { 
        if(!$timeline_image=="") 
        { 
         $image_properties = array('src' => base_url("uploads/".$timeline_image),'width' => '900px','height'=> '400px','id'=>'coverimg', 'title' => 'That was quite a night','rel' => 'lightbox'); 
         echo img($image_properties); 
        }else{ 
         $timeline_image = array(
          'src' => base_url("assets/img/Facebook-cover.jpg"), 
          'width' => '900px', 
          'height'=> '400px', 

         ); 

         echo img($timeline_image); 
        } 
        ?> 
        <div id="timelineselector" class="grow"> 
         <?php echo form_open_multipart('',["id"=>"form_cover"]); ?> 
         <input type="hidden" name="id" value="<?php echo $id ;?>"> 
         <label class="icons-camera " for="timelineimage"> 
          <p class="cover_upload"> <i class="fa fa-camera cover_upload" style="color:white;">&nbsp;Upload Your Cover</p></i> 

         </label> 
         <?php echo form_upload(["name"=>"timelineimage","id"=>"timelineimage" ]); ?> 
         <?php echo form_close(); ?> 
        </div> 
        <?php 
       } 
       ?> 
      </div> 

jQuery代码

jQuery('#timelineimage').on('change',function(e) { 
     e.preventDefault(); 
     var form=jQuery('#form_cover')[0]; 
     var formData = new FormData(form); 
     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) { 

      console.log(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); 
         $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']); 
        $upload_data = $this->upload->data(); 
        $file_name=$_FILES['timelineimage']; 
        $this->load->model('Pmodel'); 
        $this->Pmodel->timeline_upload_model($post,$file_name); 

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

      } 

型号代码

public function timeline_upload_model($arr,$arra) 
     { 

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

     $data=array('timelineimage'=>$image,'user_id'=>$id); 

     $query=$this->db->where('id',$id)->update('user_data',$data); 
      //print_r($query); 
      return $query; 
    } 

现在让我告诉你什么是

[![First Image][1]][1] 
[![Second Image][2]][2] 
[![Third Image][3]][3] 

    [1]: https://i.stack.imgur.com/C2Rvu.png 
    [2]: https://i.stack.imgur.com/4fYXJ.png 
    [3]: https://i.stack.imgur.com/DG4NH.png 
+0

你得到什么数据ajax成功 – shafiq

+0

像这样的图像的URL“http://localhost/P_Display/uploads/1-logo2.png”@shafiq –

+0

是哟你使用任何框架?是第一次$ timeline_image空 – shafiq

回答

1

你已经错过了在其他图像标签的ID问题部分。

if(!$timeline_image=="") 
    { 
     $image_properties = array('src' => base_url("uploads/".$timeline_image),'width' => '900px','height'=> '400px','id'=>'coverimg', 'title' => 'That was quite a night','rel' => 'lightbox'); 
     echo img($image_properties); 
    }else{ 
     $timeline_image = array(
      'src' => base_url("assets/img/Facebook-cover.jpg"), 
      'width' => '900px', 
      'height'=> '400px', 
      'id'=>'coverimg', 
     ); 
     echo img($timeline_image); 
    } 
+0

老兄,你救了我一个比你的帮助更大的麻烦! @shafiq –

+0

欢迎您:-) – shafiq

0

我使用ajax,并将其保存在PHP数据库上传多个文件,但它显示空数组。

这是我的html代码

<form id="registration_form" method="post" enctype="multipart/form-data"> 
    <input type="file" id="file" name="file[]" multiple> 
</form> 

这是我的AJAX代码 -

$.ajax({ 
    url:"update.php", 
    type:"post", 
    data: new FormData(this), 
    contentType:false, 
    cache:false, 
    processData:false, 
    success:function(data) 
    { 
     alert(data); 
    }, 
    failure:function(errormsg) 
    { 
     alert(errormsg); 
    } 
}); 

这是我的PHP代码(update.php)

<?php 
    $IMG = isset($_POST['file']) ? $_POST['file'] : array(); 
    if (!empty($IMG)) { 
     $uploads_dir = 'upload/'; 
     echo $uploads_dir; die; 
     foreach ($IMG["error"] as $key => $error) { 
      if ($error == UPLOAD_ERR_OK) { 
       $tmp_name = $IMG["tmp_name"][$key]; 
       $name = $IMG["name"][$key]; 
       move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
       $name_array=mysql_real_escape_string($name); 
       $value_insert[] = "('" . $name_array . "')"; 
      } 
     } 
     $values_insert = implode(',', $value_insert); 
     echo "asd"; 
     $sql="update register set filename='$values_insert' where id='1'"; 
     $result = mysql_query($query); 
    }else{ 
     echo 'empty array'; 
    } 
?>