可以this => set_time_limit ()
,Die()
用于取消文件上传。
即当用户单击按钮时set_time_limit ()
该功能将执行。
它会停止上传吗?
你最好使用Javascript解决方案来完成这个。当然,由于它是客户端,人们可以绕过它。如果是安全问题,不要依赖Javascript。如果您运行 Apache,您可以尝试mod_reqtimeout,但这适用于请求标头,所以我不完全确定文件上传是否是其中的一部分。
编辑:还有Apache Timeout指令和KeepAliveTimeout,它们看起来更有希望。
编辑2:我只是偶然发现了这个。似乎这正是您正在寻找的(假设 PHP>= 5.4)。从其中一条评论中,对于以前的版本,您可以使用它。
它不会
Php 本身不参与文件上传进度。当 Web 服务器开始运行脚本时 - 文件已上传
Afaik,PHP 无法"取消"上传。只要 PHP 被告知您的上传,上传过程就完成了。
但是,这只是一个猜测,但是由于有一种方法可以使用APC创建进度条(然后检查上传过程),因此您可以阻止它。但我真的不确定,因为检查(即:进度条)在不同的 php 进程中运行,该进程无法与当前上传的文件交互。
由于请求和响应的工作方式,您始终必须等待数据交付,然后才能再使用它,包括取消上传。正如@Mike所说,您可以设置超时,但这并没有真正取消上传,这基本上是在告诉 php,嘿,这个用户需要很长时间才能做某事,所以告诉他们我们不再等待了。你最好使用 ajax 来做这样的事情。