2010-10-27 25 views
1

我对HTTP没有足够的了解,但我的理解是HTTP请求由一堆标题和正文组成。读取HTTP请求标题以决定是否继续

PHP有可能接收请求标头,根据收到的内容做出决定,然后中止请求或继续接受正文?

当接收到非常大的上传文件时,这会很有用。因此,我可以避免用户浪费时间上传大文件,以便发现服务器不会接受它(文件已存在)。我知道我可以发送一个单独的XHR请求来做到这一点,但我想知道如果没有这个可能。

因此,简而言之,PHP只能在收到标题后取消HTTP请求吗?

回答

3

HTTP连接的细节通常由Web服务器处理。所以,不可能过早地从PHP关闭连接。

可以在Web服务器上实现某种“过滤器”来扫描想要避免的标题,但这可能涉及创建自定义模块,具体取决于您的Web服务器。

+0

谢谢,这是我怀疑的。 – Rafael 2010-10-27 11:35:47

+0

呵呵,我的编辑没有出现。我还问你是否认为唯一合适的解决方案是启动一个单独的XHR请求来查看文件是否已经存在。我对这样做并不感到兴奋,因为99%的时间会浪费时间,但我想知道这里的“完成”是什么。 – Rafael 2010-10-27 12:46:51

+1

“文件已存在”是什么意思?你是指文件名还是文件本身?如果你的意思是文件名,那么你是对的,因为XHR请求是处理这个问题的最好方法。如果你指的是文件本身,那么你需要获取整个文件进行比较。您必须小心,因为两个文件可以具有相同的名称,但完全不同,或者具有不同的名称,但是是相同的文件。永远不要相信用户输入 – srkiNZ84 2010-10-27 20:23:49