尝试将图像保存到数据库以及使用ajax在codeigniter中将其显示在视图中仅在页面加载后起作用

时间:2017-02-09 16:31:12

标签: php ajax codeigniter

创建了一个正常的上传图像系统并将图像上传到数据库现在当我点击上传时图像没有显示在div上,但我必须重新加载页面以查看上传的图像我可以使用什么来用ajax提交显示图像

这是代码

<div id="timelineProfilePic"><?php 
{
    $image_properties = array('src'=> base_url("uploads/" . $image_file),'width' => '200px','height'=> '200px','id'=>'profilepic','rel'   => 'lightbox');


    echo img($image_properties);
   ?>
   <div id="profilepicselector">
<?php echo form_open_multipart('',["id"=>"form_profile"]); ?>

<input type="hidden" name="id" value="<?php echo $id ;?>" >

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

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

<?php echo form_close(); ?>
</div>
<?php
}
?></div>

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

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

        jQuery.ajax({

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

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

public function do_upload()
  { 
      $config = [
                'upload_path' =>    './uploads',
                'allowed_types' =>    'jpg|gif|png|jpeg',
                'max_size'            => 1100000000,
                'max_width'            => 102400000,
                'max_height'           => 76800000,
                 ]; 
        $this->load->library('upload', $config);
         $this->upload->initialize($config); 
       if($this->upload->do_upload('imagefile')) 
       {

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

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

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




      $image_path_profile= base_url("uploads/".$upload_data['raw_name'].$upload_data['file_ext']);
        } 
        else
        {
         $upload_error = $this->upload->display_errors();
         $this->load->view('dashboard/profile',compact('upload_error'));
        }
  }

1 个答案:

答案 0 :(得分:0)

发现错误是一个愚蠢的错误。我需要回显图像路径,这样当我点击ajax提交时,它会发生变化,就像这样

echo $ image_path_profile = base_url(“uploads /".$ upload_data ['raw_name']。$ upload_data ['file_ext']);

这将在我上传的同时返回图像。

thanx回复