dongshao2967 2017-02-08 17:00
浏览 67
已采纳

在codeigniter中上传图像时,图像不会保存到路径文件夹中

When I upload an image in Codeigniter its name is saved to the database but not in the default folder. I'am using Ajax to submit the image

My "view" profile

  <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>

here is my ajax code

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
            }
       });            
    });

my controller "user"

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'));
    }

}

my model "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;



}

Why does it only show the name but not the image?

  • 写回答

1条回答 默认 最新

  • dongzhanlu8890 2017-02-09 16:23
    关注

    I found the answer and posted the code, in case anyone else wants to look at this...

    the 'view'

     <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
                }
           });            
        });
    

    and the controller:

         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']);
    
              }
    
      }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测