Ich habe einige Base64-Zeichenfolgen von PNG und ich möchte sie an den Server übergeben und speichern Sie die PNG-Dateien.Javascript posten JSON-Daten mit Formular, aber die JSON ist nicht in PHP
in Javascript Meine Form sieht wie folgt aus:
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();
Und in php, der Code wie folgt aussieht:
$json = Input::get('imgs'); // $json = __POST('imgs');
return $json;
jedoch die $json
in PHP zurückgegeben nicht abgeschlossen ist. Es ist ein Teil von JSON.stringify(base64_list)
. Und wenn ich versuche, json_decode($json)
zu nennen, json_last_error()
gibt Fehlercode 4.
I post_max_size = 2048M
in php.ini
und LimitRequestBody 2147483647
in httpd.conf
gesetzt haben.
Bitte helfen Sie mir, das Problem herauszufinden, vielen Dank.
Update: JSON.stringify(base64_list).length
kehrt 769.283 aber strlen($json)
kehrt 524288
Ich bin nicht sicher, was der Punkt des 'args' Objekt ist, wird es nur eine einzige Eigenschaft' imgs' enthalten, die die json codierte Zeichenfolge – andrew
Bitte näher auf die „die $ wird json ist in PHP zurückgekehrt. – Sammitch
"das $ json, das in PHP zurückgegeben wird, ist nicht abgeschlossen": Zum Beispiel ist das Ergebnis von 'console.log (JSON.stringify (base64_list))' '['abcdefghijklmn']', aber '$ json' ist etwas wie' ' [abcdefghijkl''. Da Base64 String so lang ist, bezweifle ich, ob es die Grenze von Javascript Post oder PHP ist? – wzpfish