-1

在 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){



} 


});

任何想法如何解决它?

4

2 回答 2

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/

于 2018-07-15T23:42:55.343 回答
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);   
        }
    });
于 2018-07-16T08:42:56.200 回答