通过file_put_contents将base64映像发布到文件夹时,从ajax获取413请求实体太大错误

时间:2014-07-19 05:20:33

标签: javascript php jquery ajax codeigniter

我通过ajax发送数据时收到413请求实体太大错误 我正在转换base64图像编码的代码...我传递给 我的控制器功能在codeigniter ..... 给我错误413请求实体太大

我的ajax代码如下:

    $('#save-image-php').click(function() {

        $.ajax({
                    type: "POST",              
                    url: php_directory_save,       
                    data: { base64_image: yourDesigner.getProductDataURL()},

                    success: function(data) {

                         if(parseInt(data) > 0) {
                            $( "#cart_pd" ).submit();

                            }

                    },
                    error: function() {
                        //alert('some error has occured...');
                    },
                    start: function() {
                        //alert('ajax has been started...');    
                    }
                });


});

我的codeigniter控制器功能

    public function saveimage(){


        $base64_str = substr($this->input->post('base64_image'),strpos($this->input->post('base64_image'), ",")+1);

        $decoded = '';
        $decoded = base64_decode($base64_str);

        $png_name = '';
        $png_name = "product-".strtotime('now').".png";

        $png_url = '';
        $png_url = "uploaded_files/custom_image/".$png_name;


         $id = $this->product_model->save($png_name);
         $data = array('cust_id'=>$id); 
         $this->session->set_userdata($data);
         $result  = '';
         $result = file_put_contents($png_url, $decoded);

        if($id !=''){

            header('Content-Type: application/json');
            echo json_encode($id);

                   }

    }   

1 个答案:

答案 0 :(得分:0)

如果你在nginx上运行,这可能是原因

在nginx.conf中

http {
    server {
        client_max_body_size 20M;
    }
}

将其增加到更合理的数字并进行更多测试。