set_time_limit ( ), Die ( ) 这个函数可以用来取消 php 中的文件上传


set_time_limit ( ), Die ( ) can this function be use to cancel a file upload in php

可以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 来做这样的事情。