【问题标题】:I am uploading image with the help of ajax and also showing it in a div but it wont show the image for the first time image is uploaded in php我在 ajax 的帮助下上传图像并将其显示在 div 中,但它不会在第一次在 php 中上传图像时显示图像
【发布时间】:2017-06-30 14:52:29
【问题描述】:

我正在使用帮助 ajax 上传图像并显示它。现在我想要实现的是,一旦用户选择图像,它应该在 div 中可见,但是当我第一次尝试上传图像时当数据库为空时,它什么也没显示 ajax 正在运行 数据正在保存到数据库中,但我看不到图像 你能告诉我我在做什么错吗?

    <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

【问题讨论】:

  • 在 ajax 成功中获得了什么数据
  • 这样的图片的url "localhost/P_Display/uploads/1-logo2.png" @shafiq
  • 你在使用任何框架吗? $timeline_image 是第一次为空
  • codeigniter @shafiq
  • 第一次 $timeline_image 的输出是什么?你能分享你的控制器代码吗?

标签: php jquery html ajax codeigniter


【解决方案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);
    }

【讨论】:

  • 老兄,你帮我省了一大堆麻烦,而不是你的帮助!! @shafiq
【解决方案2】:

我正在使用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';
    }
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多