Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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 无法多次发布同一文件_Php_Apache_Postman - Fatal编程技术网

Php 无法多次发布同一文件

Php 无法多次发布同一文件,php,apache,postman,Php,Apache,Postman,希望有一个简单的改变(或被忽略的东西)。 我们将一个PHP应用程序从Redhat 5.9和PHP 5.4.14移植到: PHP 5.6.33 (cli) (built: Jan 14 2018 08:26:10) Red Hat Enterprise Linux Server release 6.9 (Santiago) 在这两种情况下,它都是Apache2.2.23 我们有一个API,允许特定应用程序发送POST数据,有时发送文件。(我们在测试时使用邮递员) 在Postman中,如果我将PO

希望有一个简单的改变(或被忽略的东西)。 我们将一个PHP应用程序从Redhat 5.9和PHP 5.4.14移植到:

PHP 5.6.33 (cli) (built: Jan 14 2018 08:26:10)
Red Hat Enterprise Linux Server release 6.9 (Santiago)
在这两种情况下,它都是Apache2.2.23

我们有一个API,允许特定应用程序发送POST数据,有时发送文件。(我们在测试时使用邮递员)

在Postman中,如果我将POST请求作为
表单数据
(包括一个文件)发送到“somefile.up.php”,我第一次在Postman中单击“发送”,在php端,如果我在$\u POST和$\u FILES数组上
打印
,我可以看到所有预期的数组键和值,包括$\u文件

如果我在Postman中发送另一个POST请求,并且所有细节都相同,则$\u FILES数组为空(我只看到打印的$\u POST变量)。 看来文件根本就不在那里。有时唯一有效的方法是选择一个不同的文件进行上传(在Postman中),然后再次发送请求,但该文件只能发送一次。后续发送将生成空的$\u文件数组

我已经检查了文件发送到的位置(临时),通常
$\u files['keyname']['tmp\u name']
的值为
/tmp/php…
,文件到达时[error]的值为0。我还可以看到文件的名称、类型及其大小。 我还检查了php.ini中的
post\u max\u size
upload\u max\u filesize
的值,post\u max\u size大于1m

当应用程序在PHP5.4.14和Redhat5.9下运行时,我们能够多次发送相同的文件

更新:如果我使用shell执行操作(本例中为babun),我每次都可以正确发送文件。所以我猜邮递员体内正在发生一些事情。这解决了我50%的问题,只是因为最初接收文件的脚本必须验证其内容,然后执行Curl post将其发送到另一台服务器。尝试此操作后,文件不会到达$\u FILES数组


UPDATE2:通过更新代码将文件从服务器发送到服务器的问题得到解决。代码在文件名前面使用了非常旧的“at符号”,以获取其内容。根据建议更新代码。因此,现在需要对Postman Standalone应用程序进行故障排除。

我感觉这个问题存在于Postman Standalone应用程序中。我在他们的github问题跟踪器中看到了类似的东西,但它们都是旧问题,可以追溯到Postman只是一个浏览器扩展的时候

我还没有找到答案,也许在独立的Postman应用程序中有更多的控件或设置需要处理

似乎一个命令行curl(带或不带文件)可以进行多次,每次都可以工作。如果我在邮递员应用程序中重复(相同)呼叫,它似乎有时会“挂起”,在我单击“取消请求”按钮之前不会做任何事情。如果我再等几秒钟,就又好了


感谢阅读。

也许某个地方有一种配置,可以防止在给定时间内重复请求?只是一个想法…也许这是一个许可问题!谢谢@ArashKiani,但我不认为这是基于许可的。我可以从babunshell一次又一次地发送相同的文件,但是在Postman中它只工作一次,除非我删除“file”参数并重试。