2016-10-02 84 views
0

我通過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,你現在可以看到 –

回答

0

我這個

做到了
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發送

0

你必須增加你的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