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图像或改善这种代码或东西吗?
我这个
做到了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
}
});
谢谢你的回应。我无法更改php.ini文件。 我正在做多个文件上传,在提交时,我需要发送所有图像到php,比上传它等..并保存在数据库中。如果你有这个解决方案。这将是伟大的 –
我试试这个,如果我有大于10-15MB的图像是一样的,有没有另一种方式发送图像与Ajax? –
你需要acces到你的php.ini或你的双手绑在一起 – Aschab
什么是'thumbnailArray'?你的代码片段很有用,但是不知道你想要序列化什么,为什么这么大,你不会得到太多帮助。 –
@TomášHübelbauer我说那是对象。没关系,我更新后,并添加thumbnailArray,你现在可以看到 –