使用codeigniter和ajax上传图像

时间:2017-02-28 07:18:05

标签: ajax codeigniter

您好我正在尝试使用codeigniter和ajax上传图片。一旦我上传图片,错误就会显示您尝试上传的文件类型是不允许的。我在上传文件夹中检查没有上传的图片。我不知道编码中的错误在哪里,任何人都可以帮助我...

这是我的视图编码

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Welcome to CodeIgniter</title>
        <!-- Latest compiled and minified CSS -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <!-- jQuery library -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <!-- Latest compiled JavaScript -->
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
        <script>
          $(document).ready(function(){
              $('#upload_form').on('submit',function(e){
                  e.preventDefault();
                  if($('#image_file').val()=='')
                  {
                      alert("Pls Select the Image File");
                  }
                  else{
                      $.ajax({
                          url:"<?php echo base_url()?>Upload/uploadFile",
                          method:"POST",
                          data:new FormData(this),
                          contentType:false,
                          catch:false,
                          processData:false,
                          success:function(data){
                              $('#uploaded_image').html(data);
                          }
                      });
                  }

              });
          });
        </script>
</head>
<body>
<div id="container">
    <h3 align="center"><?php echo $title  ?></h3>
        <form enctype="multipart/form-data" id="upload_form" class="formReset" method="post">
            <div class="control-group form-group">
              <div class="controls">
                    <label>Upload Photo:</label>
                    <input  type="file"  name="image_file" id="image_file">
                    <p class="help-block"></p>
               </div>
              </div>

              <button type="submit" class="btn btn-primary" id="upload" name="upload">Submit</button>
        </form>

        <div id="uploaded_image">

        </div>
</div>
</body>
</html>

这是我的控制器编码

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Upload extends CI_Controller {
    public function index()
    {
        $data['title']="Image Upload funtion using ajax in codeigniter";    
            $this->load->view('Upload',$data);
    }
        public function uploadFile(){
           if(isset($_FILES['image_file']['name'])){
               $config['upload_path']='./upload/';
               $config['allowed_types']='jpg/jpeg/png/gif';
               $config['overwrite']=TRUE;
               $config['max_size']='1000000';
               $config['max_height']='1000';
               $config['max_width']='1000';
               $this->load->library('upload', $config);
               if(!$this->upload->do_upload('image_file')){
                   echo $this->upload->display_errors();
               }
               else{
                    $data=$this->upload->data();
                    echo '<img src="'.base_url().'upload/'.$data["file_name"].'"/>';
               }
           }
        }
}

1 个答案:

答案 0 :(得分:0)

允许的类型应该是管道分隔而不是正斜杠

e.g。

$config['allowed_types'] = 'gif|jpg|jpeg|png';

可以是数组或以管道分隔的字符串。