如何在 Codeigniter 中处理图像

how to deal with images in Codeigniter

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

然后我将 input 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){



} 


});

有什么解决办法吗?

希望对您有所帮助:

你的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/

也许你可以使用而不是 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);   
        }
    });