Ajax发送多个base64图像

问题描述:

我通过ajax请求发送多个图像。但是,由于存储内容,发送多个图像时出现问题。Ajax发送多个base64图像

当我尝试json_decode此对象thumbnailarray。我得到了这个对象

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1048655 bytes)

thumbnailArray = { 
    image1 : { 
     image : base64, 
     rotate : 0, 
     order : 1 
    }, 
    image2 : { 
     image : base64, 
     rotate : 0, 
     order : 2 
    } 
} 

我送的base64图像与像图像旋转和顺序的一些价值观。 这是代码:

var formData = new FormData($(this)[0]); 
    formData.append('ab-user-image', JSON.stringify(thumbnailArray)); 

    $.ajax({ 
     url : baseUrl+'user/ajax_user_add/', 
     type : 'POST', 
     data : formData, 
     async : true, 
     cache : false, 
     contentType : false, 
     processData : false, 
     success : function(data) { 
      //success 
     } 
    }); 

有没有更好的方式来发送的base64图像或改善这种代码或东西吗?

+0

什么是'thumbnailArray'?你的代码片段很有用,但是不知道你想要序列化什么,为什么这么大,你不会得到太多帮助。 –

+0

@TomášHübelbauer我说那是对象。没关系,我更新后,并添加thumbnailArray,你现在可以看到 –

我这个

做到了
var picReader = new FileReader(); 
picReader.onload = function(event){ 
    $('.ab-image-upload .ab-image-uploaded').append(createContainerThumbnail(event.target.result, j)); 
    thumbnailArray['ab-user-image'+j] = { 
     image: event.target.result, 
     rotate: 0, 
     order: 0 
    }; 
    j++; 
}; 
picReader.readAsDataURL(file); 
if(formData) { 
    formData.append('images[]', file); 
} 

我追加在FORMDATA文件直接的FileReader。而不是通过ajax发送

你必须增加你的php.ini的限制:

的upload_max_filesize 的post_max_size

或repcreate的AJAX功能,使通话1为每个图像

您可以重新创建具有AJAX功能是这样的:

var formData 

= new FormData($(this)[0]); 
    formData.append('ab-user-image', JSON.stringify(thumbnailArray)); 

    $(formData).each().ajax({ 
     url : baseUrl+'user/ajax_user_add/', 
     type : 'POST', 
     data : this, 
     async : true, 
     cache : false, 
     contentType : false, 
     processData : false, 
     success : function(data) { 
      //success 
     } 
    }); 
+0

谢谢你的回应。我无法更改php.ini文件。 我正在做多个文件上传,在提交时,我需要发送所有图像到php,比上传它等..并保存在数据库中。如果你有这个解决方案。这将是伟大的 –

+0

我试试这个,如果我有大于10-15MB的图像是一样的,有没有另一种方式发送图像与Ajax? –

+0

你需要acces到你的php.ini或你的双手绑在一起 – Aschab