如何在Codeigniter中处理图像

时间:2018-07-15 23:23:30

标签: php ajax codeigniter codeigniter-3 codeigniter-upload

在Codeigniter中,我使用ajax向(产品)添加记录,并且一切正常,因此我决定添加(image)字段,由于某种原因,它不再向数据库添加任何记录

然后我将输入type = file添加到表单中

   <input type="file" name="image">

我将其添加到我的控制器

   $image =    $this->input->post('image');


$data = array('title'=>$title,'description'=>$description,'price'=>$price,'quantity'=>$quantity,'image'=>$image);

但是当我删除$ image = $ this-> input-> post('image');它可以再次工作

以防万一这是我的ajax代码

  var postData = $(this).serialize();

$.ajax({
type:'post',
url: baseURL+"admin/Products/add_product",
data:postData,
dataType:'json',
  success:function(data){



} 


});

有什么解决方法的想法吗?

2 个答案:

答案 0 :(得分:1)

希望这对您有帮助:

您的ajax应该是这样的:

var formdata = new FormData();
$.ajax({
    type: 'POST',
    url: baseURL+"admin/Products/add_product",
    data: formdata,
    cache: false,
    contentType: false,
    processData: false, 
    success: function(response)
    {
       alert(response);   
    }
});

在控制器中使用$_FILES超变量访问图像

public function add_product()
{
   print_r($_FILES);
   print_r($this->input->post());
   exit;
}

Note:确保URL路径正确,请参见“网络”标签以查看输出

更多信息:https://www.formget.com/ajax-image-upload-php/

答案 1 :(得分:0)

也许可以使用代替baseURL

var formdata = new FormData();

    $.ajax({
        type: 'POST',
        url: <?=base_url()?>+"admin/Products/add_product",
        data: formdata,
        cache: false,
        contentType: false,
        processData: false, 
        success: function(response)
        {
           alert(response);   
        }
    });