Я пытаюсь сжать строку JSON с помощью pako
и отправить ее в сценарий PHP (Laravel) и распаковать его, затем изменить, снова сжать и отправить обратно клиенту.
Когда я сжимаю и распаковываю в клиенте, он отлично работает; но когда я отправляю сжатые данные с клиента на сервер, он показывает мне:
«ErrorException (E_WARNING) gzdecode (): ошибка данных».
Я пробовал gzinflate
, gzumcompress
, gzuncompress
, SO , zlib
и pako
официальную документацию, но ничего не работает.
Код клиента :
var pako = require('pako');
// convert JSON to string
var input = JSON.stringify(vm.exceltojson);
// compressing input
var output = pako.gzip(input, {to: 'string'});
output = btoa(output);
var data = [{output: output}];
// send data to server
HTTP.post(apivalida_per, data)
.then(response => {
vm.persona_planilla = response.data.data;
});
Код сервера :
public function getgzip(Request $request)
{
// here I get the error: gzinflate() data error
// Example of input on base64 H4sIAAAAAAAAA12SUUvDMBSF/4r0WVw7N9fubU5lheFkqA8TCbdJ1l1Zc0PSyED87960KwyfSr5zzj23TT9+EuMomWfXidVOSEzm02KW380mAxD6ZLVCxaZk/ZL0GKw+HpkJ67DRcUCyWG6Wq3Jb/nd4XQfTpZfbt91ZNdRUTnuG27fX1dVD+fy43i3O4l7LAwgDEhvUpo3R22yUTkdZkRdnjwWM6fvNunwvh6DXp2h+4qOygmSwPINMrCbjw7El10t9A5qad4iJLB+l2WicZkWvH8iB544aFHBN3kGFzFoHFXyBIsbjrDdDxd0VeJQ8azpN0w5XZEiAabEOWoFi+6VgHakg++167EPlUSGJvSPTageDECv5EvhBTqEBxx5Dsg3O0ODhVUkoatCghONAqXXkuz4/ICcFfvPo2XhyM5lduJT2MsSv3Vt1YwWq7r8IXjtUAlp+hd/PP5f0W64xAgAA
$string = gzdecode(base64_decode($request->output));
return $string;
// ---here is more code, but i want first uncompress de JSON
}