我有一个PHP脚本,可以从远程设备接收图像并将它们保存到数据库中。从Apache启动的脚本首先接收定义正在上载的内容的标题,然后接收上传图像的内容,所有这些都作为单个多部分传输。成功添加图像后,它会回复确认设备。
现在的问题是连接不是很可靠。有时传输超时。这不会是一个问题,因为如果设备没有收到确认,设备会在一段时间后重新发送数据。除非传输中途被破坏,否则Apache会像往常一样启动脚本,并且脚本会愉快地将不完整的图像集保存到数据库中,并将其创建时间戳作为唯一键。然后远程设备重新发送数据,然后脚本正确接收,但由于损坏的数据已经采用了唯一密钥,因此无法保存它。
是否有一些可靠的方法可以从PHP脚本中告知它是在不完整的多部分传输中启动的,还是在传输未成功结束时阻止Apache启动它?
(我们无法真正改变数据库结构或从远程设备收到的格式。)
答案 0 :(得分:1)
检查设备的应用程序代码是否发送超时。也许连接速度太慢,并且在达到时间限制时它会刹车。在这种情况下,apache服务器将运行带有部分接收数据的php脚本,尽管不匹配Content-Length标头。