通过ajax发送非常大的base64数据的最有效方法

I am looking to send a giant string over ajax to my server for php to handle it.

There is no point in pasting the base64 data but we are talking high quality images 2000 * 2000 px in size.

The way Im doing it at the moment doesnt work well unless Im on a very fast internet connection, sometimes it takes so long it times out. Im wondering is there a better way I could do it?

convertImgToBase64(imageUrl, function(base64Img){
    console.log(base64Img);

    //alert(base64Img);
           $.ajax({
        url: 'index.php?route=product/product/image_upload',
        type: 'post',
        dataType: 'json',
        data: {
            img : base64Img,
        },
        success: function(json) {
         //stuff

        }
    });
});