【发布时间】:2019-12-06 18:38:02
【问题描述】:
顺便说一句,这不是重复的,我不是在尝试在 PHP 中压缩,而是在尝试压缩客户端并在 PHP 中解压缩。
我正在尝试将包含 5 个 base64 图像和一些文本的 JSON 数组压缩到我的 PHP api。
我尝试了 lz-string 和 pako,它似乎按预期发送了压缩的有效负载,但我在 PHP 后端解压缩时遇到了问题。
Typescript Gzip。
var payload = pako.gzip(JSON.stringify(data), { to: 'string' });
let headers = new Headers({ "Content-Encoding" : "gzip"});
headers.append('Content-Type', 'application/json; charset=x-user-defined-binary');
let requestOptions = new RequestOptions({ headers: headers });
var url = this.baseUrl + "/app/notice/issue/compressed";
return this.http.post(url, data, requestOptions).pipe(timeout(100000), map(res => { return res.json() }), catchError(err => { return throwError(err.message); }));
PHP
$input = file_get_contents("php://input");
$test = gzdecode($input);
echo $test;
输出
"
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
<p>Message: gzdecode(): data error</p>
</div>"
如果有人可以帮助减少我的 JSON 的大小,那将非常有帮助。
谢谢。
【问题讨论】:
-
参考这个,虽然它是 java 会为你指明正确的方向stackoverflow.com/a/1407637/5956589 也看看其他提到 php 解压缩部分的其他人
标签: javascript php json typescript compression