首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不重置表单的情况下使用ajax和codeigniter上传图片?

如何在不重置表单的情况下使用ajax和codeigniter上传图片?
EN

Stack Overflow用户
提问于 2019-02-13 15:39:51
回答 1查看 1.1K关注 0票数 1

我只想用ajax和codeigniter上传一张图片。出现“您没有选择要上传的文件”的错误。就连我也选择了那张图片。

我最近尝试了许多来源的示例,但没有得到我的答案。在我向您展示我的代码之后,我得到的结果是“您没有选择要上传的文件”。当我已经选择了文件时。

这是我的观点:

代码语言:javascript
复制
<div class="col-lg-6">
   <div class="dropify-wrapper mb-4 form-group col-lg-6">
       <div class="dropify-loader"></div>
        <div class="dropify-errors-container">
        <ul></ul>
        </div>
        <input class="dropify" name="userfile" id="input-file-now" type="file">
        <button class="dropify-clear" type="button">Remove</button>
        <div class="dropify-preview">
        <span class="dropify-render"></span>
        <div class="dropify-infos">
        <div class="dropify-infos-inner">
        <p class="dropify-filename"><span class="file-icon"></span>
        <span class="dropify-filename-inner"></span></p>
        <p class="dropify-infos-message">Drag and drop or click to replace</p>
        </div>
        </div>
        </div>
      </div>
    </div>

这是ajax代码:

代码语言:javascript
复制
$('#submit_btn').click(function (e) {
   e.preventDefault();
   var data = $('#formname').serialize();

   $.ajax({
      type: 'ajax',
      method: 'post',
      url: '<?php echo base_url() ?>ControllerName/functionName',
      data: data,
      enctype: 'multipart/form-data',
      async: false,
      dataType: 'json',

      success: function (response) {
         alert(response);
      },

      error: function () {

      }
   });
});

这是控制器代码:

代码语言:javascript
复制
public function functionName()
{
    $config=[
      'upload_path'=>'./Assets/imgs/users/',
      'allowed_types'=>'jpg|png|gif' 
    ];       
    $this->load->library('upload',$config);
    if($this->upload->do_upload(')){
        $data=$this->upload->data();
        $image_path= base_url("Assets/imgs/users/".$data['raw_name'].$data['file_ext']);
        $result= $image_path;
    }else{
        $result=$this->upload->display_errors('','');
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-02-13 15:53:36

请在html中添加标签,并在jquery代码中使用formdata,如下所示。

HTML代码:

代码语言:javascript
复制
<form id="form" method="post" enctype="multipart/form-data">
</form>

Jquery代码:

代码语言:javascript
复制
  data:  new FormData(formid),   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54664890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档