【问题标题】:Cannot upload image through Ajax in Codeigniter无法在 Codeigniter 中通过 Ajax 上传图像
【发布时间】:2016-01-08 12:13:20
【问题描述】:

我正在使用 Jquery Ajax 在 Codeigniter 中上传图像,但问题是图像没有上传,我收到警报 Disallowed key Characters。下面是我正在使用的模型和视图。

查看:

$("#upload_course_img").on('submit',function(e){
    e.preventDefault();

 $.ajax({
    url: "<?php echo base_url();?>upload_course_image/upload_img",
        type: 'POST',
        cache: false,               
    data: new FormData(this),
        processData:false,

        success: function(data){
         alert("data:"+data);


       },
    error: function(){                      
    alert('Error while request..');
    }
   });
});

<form  method="post" id="upload_course_img" enctype="multipart/form-data"> 
<input type="file" name="course_img"/>
<input type="submit" name="submit" value="Save" id="submit-id-submit"/> 
</form>

型号:

public function upload_img()
{
  if($this->input->post('course_img')) {  

  $config['upload_path'] = './uploads/';
  $config['allowed_types'] = 'gif|jpg|png|jpeg';
  $config['max_size'] = '10000';
  $config['max_width']  = '1024';
  $config['max_height']  = '768';

  $this->load->library('upload', $config);

  if (!$this->upload->do_upload())
  {

  } 
  else
  {


  }
  }
}

【问题讨论】:

  • if (!$this-&gt;upload-&gt;do_upload('course_img')) 中添加filename 并检查
  • 你真的想通过 ajax 来做这个吗?
  • 是的,我想通过 ajax 做到这一点
  • for Disallowed key Characters 检查stackoverflow.com/questions/4197976/…
  • @Saty 我之前检查过这个链接,但它不起作用

标签: php jquery ajax codeigniter codeigniter-2


【解决方案1】:

这是使用 AJAX http://malsup.com/jquery/form/#file-upload 上传文件的另一个选项

【讨论】:

    【解决方案2】:

    就这样试试吧

    //Program a custom submit function for the form
    $("form#data").submit(function(event){
    
      //disable the default form submission
      event.preventDefault();
    
      //grab all form data  
      var formData = new FormData($(this)[0]);
    
      $.ajax({
        url: 'formprocessing.php',
        type: 'POST',
        data: formData,
        async: false,
        cache: false,
        contentType: false,
        processData: false,
        success: function (returndata) {
          alert(returndata);
        }
      });
    
      return false;
    });
    

    【讨论】:

      【解决方案3】:

      如果你真的想使用 AJAX 上传图片,请使用Dropzone JS. 它真的会让你的生活变得轻松

      查看 Dropzone.js 网站

      您只需实例化dropzonejs 对象并设置选项

      Dropzone.options.myAwesomeDropzone = {
            paramName: "file", // The name that will be used to transfer the file
            maxFilesize: 2, // MB
            accept: function(file, done) {
              if (file.name == "image.jpg") {
                done("Naha, you don't.");
              }
              else { done(); }
            }
          };
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-06
        • 1970-01-01
        • 2020-06-26
        • 1970-01-01
        • 2020-07-02
        • 2014-07-12
        • 2015-06-16
        相关资源
        最近更新 更多