2016-03-28 18 views
0

Bazı base64 dizileri var ve bunları sunucuya aktarmak ve png dosyalarını kaydetmek istiyorum. javascriptJavascript post JSON verileri kullanarak, ancak JSON PHP'de tamamlanmamış

Benim formu şuna benzer:

var $form = $("#downloadForm"); 
if ($form.length == 0) { 
    $form = $("<form>").attr({ "target": "_blank", "id": "downloadForm", 
     "method": "POST", "action": "keyword-cmp-download" }).hide(); 
    $("body").append($form); 
} 
$form.find("input").remove(); 
var args = {'imgs': JSON.stringify(base64_list)}; 
console.log(JSON.stringify(base64_list)); 
for (var field in args) { 
    $form.append($("<input>").attr({"value":args[field], "name":field})); 
} 
$form.submit(); 

Ve php

, kod şöyle görünür:
$json = Input::get('imgs'); // $json = __POST('imgs'); 
return $json; 

Ancak PHP döndürülen $json

tamamlanmaz. Bu, JSON.stringify(base64_list)'un bir parçasıdır. Ben json_decode($json) aramaya çalıştığımda, json_last_error() ben httpd.conf içinde php.ini ve LimitRequestBody 2147483647 yılında post_max_size = 2048M belirledik 4.

hata kodu döndürür.

Lütfen sorunu çözmemde bana yardımcı olun, çok teşekkürler.

Güncelleme: JSON.stringify(base64_list).length döner 769.283 ama <textarea> değişikliğin <input> tarafından çözüldü strlen($json) döner 524288

+0

ben 'args' nesnenin noktası olduğunu ne olduğundan emin değilim hepsi, sadece tek bir özelliğini' json dize – andrew

+2

kodlanmış edileceği imgs' "$ üzerinde durmak Lütfen içerecektir json PHP'de döndü tamamlanmadı ". – Sammitch

+0

"PHP'de döndürülen $ json tamamlanmadı": Örneğin, 'console.log'un (JSON.stringify (base64_list)) sonucu' '' ['abcdefghijklmn'] ',' 'json'' gibi bir şeydir '' [abcdefghijkl''. Base64 dizesi çok uzun olduğundan, javascript post veya php sınırı olup olmadığı konusunda şüphem var mı? – wzpfish

cevap

0

.

Krom ve diğer bazı tarayıcılarda bulunan maxlength'un maxlength'undan bu yana 524288 ve <input maxlength = '52428800'> ayarlamıyor. Bunu çözmenin yolu, maxlength sınırı olmayan <textarea> kullanıyor.

Teşekkür

+0

Verilerinizde yanlış bir şey olmadığını, sadece HTML'de çıktısını unutmayın. – PHPglue