【发布时间】:2013-03-04 09:13:28
【问题描述】:
我有一个 PHP 脚本,它从远程设备接收图像并将它们保存到数据库中。该脚本从 Apache 启动,首先接收定义上传内容的标头,然后接收上传图像的内容,所有这些都作为单个多部分传输。成功添加图像后,它会回复设备确认信息。
现在的问题是连接不是很可靠。有时传输超时。这不会是一个问题,因为如果设备没有收到确认,它会在一段时间后重新发送数据。除非传输中途中断,Apache 照常启动脚本,脚本愉快地将不完整的图像集保存到数据库中,并将它们的创建时间戳作为唯一键。然后远程设备重新发送数据,然后脚本正确接收数据,但由于唯一密钥已被损坏的数据占用,因此无法保存。
是否有一些可靠的方法可以从 PHP 脚本中判断它是在不完整的多部分传输时启动的,或者如果传输没有成功结束则阻止 Apache 启动它?
(我们无法真正更改从远程设备接收到的数据库结构或格式。)
【问题讨论】:
-
Except if the transmission is broken halfway through, Apache launches the script as usual这听起来很奇怪。你有这些案例的日志数据吗?能不能暂时记录一下$_FILES数组,看看上传不完整时error变量设置了什么?
标签: php apache upload multipart