【问题标题】:upload image using codeigniter and ajax使用 codeigniter 和 ajax 上传图片
【发布时间】:2017-02-28 07:18:05
【问题描述】:

您好,我正在尝试使用 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"].'"/>';
               }
           }
        }
}

【问题讨论】:

  • 你没有像那样在脚本中获得基本 url 值..
  • 问题解决了....我改变了我的编码 $this->load->library('upload', $config); if($this->upload->do_upload("image_file")){ $data = array('upload_data' => $this->upload->data()); echo '';

标签: ajax codeigniter


【解决方案1】:

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

例如

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-29
    • 2012-03-25
    • 2020-07-02
    • 2014-10-04
    • 2018-04-03
    • 1970-01-01
    • 2015-01-31
    • 2020-06-26
    相关资源
    最近更新 更多