Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-如何忽略post多部分数据的内容长度_Php_Post_File Upload_Multipartform Data - Fatal编程技术网

php-如何忽略post多部分数据的内容长度

php-如何忽略post多部分数据的内容长度,php,post,file-upload,multipartform-data,Php,Post,File Upload,Multipartform Data,我有一个IP摄像头,可以在触发时将JPG图片上传到我的apache php web服务器 摄像头发送POST请求,多部分数据以边界分隔,在大多数情况下都可以 但有时(每5张照片)相机发送错误的内容长度(非常大的数字,139TB)。这是相机软件中的一些缺陷$_出现此问题时,请求和$\u文件数组为空 除了错误的内容长度外,其他内容在请求内都可以, 我用NETCAT听了一下,把图片解析得很好,还可以(仅14KB) 所以,如果我可以告诉php(php.ini或其他东西)忽略内容长度并按边界读取post变

我有一个IP摄像头,可以在触发时将JPG图片上传到我的apache php web服务器

摄像头发送POST请求,多部分数据以边界分隔,在大多数情况下都可以

但有时(每5张照片)相机发送错误的内容长度(非常大的数字,139TB)。这是相机软件中的一些缺陷$_出现此问题时,请求和$\u文件数组为空

除了错误的内容长度外,其他内容在请求内都可以, 我用NETCAT听了一下,把图片解析得很好,还可以(仅14KB)

所以,如果我可以告诉php(php.ini或其他东西)忽略内容长度并按边界读取post变量,一切都会很好

php有这样的开关吗

更新:

经过分析,就这个摄像头来说,

 wrongContentLength is always == correctLength + 139736760975360
                              == correctLength + 0x00007f1700000000
这可能是由32位到64位的混音引起的


但忽略这个问题的唯一方法是手动解析
php://input
当出现问题时可读…从getallheaders()读取边界,并解析其中两个之间的文件数据。

我遇到了一个非常类似的问题,即血压监测仪发送了不可靠的post请求。由于我只能在机器上设置接收IP地址和端口,因此我在自定义端口上编写了一个套接字侦听器,用于侦听消息,修复了不可靠的请求,然后将请求发送到适当的web服务器。因为请求只是文本,所以我将其全部读入,修复,发送到服务器,读取响应,并将响应发送到原始机器。只花了很少的时间。@kainaw,我现在测试了,是的,这个摄像头的端口也可以更改(但不是子文件夹)。。。我可以试试这种方法,你是用C还是什么来做最简单的代理内容长度修正程序?@kainaw,嗯,也许我可以用你的方法和简单的“socat”+“grep-v”组合来“删除内容长度”。