我有两个网站:一个使用Lighttpd和PHP,第二个使用Apache,这两个网站都没有正确处理分块传输编码.
我从我的手机J2ME发送此请求,并且无法将此传输类型更改为任何其他类型.
所以我唯一的办法就是以其他方式处理分块传输已编码请求.任何解决方案都会很好,只要我可以在我的CentOS服务器上启用它,我可以安装并更改所有必要的东西.
所以我的问题是:如何在服务器端正确处理分块编码请求?
编辑:您运行的是哪个版本的PHP/Apache/LightHTTP?因为之前PHP中存在这个错误,但它似乎与5.2.13和5.3.2一起消失了.
如果上面的链接没有帮助,我想知道PHP看到了什么,你能把它放在api中并发布结果吗?(当然是编辑过的).
$input = file_get_contents('php://input'); $stdin = file_get_contents('php://stdin'); print "FILES: "; print_r($_FILES); print("
POST: "); print_r($_POST); print("
input: ".$input); print("
stdin: ".$stdin); die;
通过这种方式我们可以看到PHP看到了什么,如果它不解码分块编码,那么我们可以手动解码它.
结束编辑.(留下以下以防其他人认为有用)
我认为这是你上一个问题的后续内容.我假设你正在从PHP读取流?
几年前我写了这篇文章,它从一个分块编码流中读取,然后你可以用输出做任何你想做的事.如果它是一个大文件,请不要将其读入字符串,而是写入文件.