Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP取消Web表单提交_Php_Html_Web Services - Fatal编程技术网

使用PHP取消Web表单提交

使用PHP取消Web表单提交,php,html,web-services,Php,Html,Web Services,我正在使用一个小网站来尝试上传图片并显示它们 当有人单击“添加图片”时,他们会被带到带有表单的页面。他们可以选择一个文件并单击提交按钮 但我现在想做的是:在正常确认按钮旁边放置第二个标有“取消”的提交按钮。如果有人选择上传,选择并点击提交,如果他们在文件完全上传之前按下取消按钮,PHP应该停止上传文件并将其删除。然后再回到概述 没有使用任何Javascript 我只有localhost,所以测试它是不可能的,因为我只是在毫秒内复制一个文件,然后按下submit按钮。没有本地主机的上传时间,我也不

我正在使用一个小网站来尝试上传图片并显示它们

当有人单击“添加图片”时,他们会被带到带有表单的页面。他们可以选择一个文件并单击提交按钮

但我现在想做的是:在正常确认按钮旁边放置第二个标有“取消”的提交按钮。如果有人选择上传,选择并点击提交,如果他们在文件完全上传之前按下取消按钮,PHP应该停止上传文件并将其删除。然后再回到概述

没有使用任何Javascript

我只有localhost,所以测试它是不可能的,因为我只是在毫秒内复制一个文件,然后按下submit按钮。没有本地主机的上传时间,我也不打算为此而在某处购买服务器

基本上,现在的情况是PHP检测发送了哪个按钮。如果发送了submit按钮,则上载文件;如果发送了cancel按钮,则返回概览


但是PHP一次完成一项任务。所以我认为这行不通。如何告诉PHP停止上传?

您不能用PHP查看按钮-整个请求将在PHP获得该信息之前发送

您可以将取消按钮放在不同的
中,如下所示:

<form> <input type="file> <input type="submit" value="upload"> </form>
<form> <input type="submit" value="cancel"> </form>

您不能用php查看按钮-整个请求将在php获得该信息之前发送

您可以将取消按钮放在不同的
中,如下所示:

<form> <input type="file> <input type="submit" value="upload"> </form>
<form> <input type="submit" value="cancel"> </form>

PHP无法停止正在进行的文件上载。在文件上传完成之前,您的PHP代码甚至都不会启动,因此当它运行时,已经太晚了。

PHP无法停止正在进行的文件上传。您的PHP代码甚至在文件上传完成之前才启动,所以在运行的时候,已经太迟了。

< P>如果确实证明取消上传是不可能的,您可以考虑实现一个易于使用的撤销或删除功能,这样用户就可以立即撤销图像的上传(即删除图像)。这在您的实验中可能没有用处,但也许您可以在生产应用程序中使用它

> P>如果事实证明取消上传是不可能的,你可以考虑实现一个易于使用的撤销或删除功能,这样用户就可以立即撤销图像的上传(即删除图像)。这在您的实验中可能没有用处,但也许您可以在生产应用程序中使用它

格雷格的想法是正确的。 与其追随大多数人,或者看看事情是如何完成的,不如看看聪明的替代方案,比如上面格雷格的解释

没有客户端和服务器之间的有效链接,任何上载都无法运行;因此,如果关闭浏览器窗口,或将其重新定向到其他地方,则上载将被终止

使用iframe并将其命名为:“myframe”。您可以轻松地将其隐藏在div中。使用action=“somefile.php”和target=“myframe”创建一个表单。将lil Javascript添加到表单的“文件”字段:onFocus=“uploadlistener()”。您可以随意命名此函数,但可以使用它检查用户是否“打开”了任何内容。浏览器将自动交换焦点,无论是用户单击“浏览”,还是用户随后打开文件。不同之处在于,在“选择”文件后,输入字段再次接收焦点,但请记住,您在“onFocus()”事件上有一个侦听器。因此:如果字段不是空的,则调用:document.uploadform.submit()

使用此方法,您甚至不需要提交按钮。如果您想对“浏览”按钮进行蒙皮,只需使用CSS使其透明即可,例如: 输入name=“myfile”type=“file”style=“width:40px;-moz不透明度:0;过滤器:alpha(不透明度=0)”onFocus=“somefunction()” 要取消上传,只需将iframe重定向到其他位置,例如: 输入type=“button”value=“cancel”onClick=“document.uploadform.action='blank.php';document.uploadform.submit()

请原谅,如果上面的html跨越多行,这是我第一次在这里发布


要跟踪进度,您需要添加一个服务器端侦听器,可以使用PHP-5.2,也可以使用一些Perl脚本来检查在开始上传之前已加载的总文件大小的字节数。这个检查间隔可以通过一些AJAX实现,或者如果您不知道这个术语,请查找:HTTP-REQUEST。这将在后台运行服务器端代码,并输出一个响应,就像您在浏览器中看到的一样,但在这里,您可以在变量中捕获它,然后执行您的操作。我希望这对任何人都有帮助。

格雷格的想法是正确的。 与其追随大多数人,或者看看事情是如何完成的,不如看看聪明的替代方案,比如上面格雷格的解释

没有客户端和服务器之间的有效链接,任何上载都无法运行;因此,如果关闭浏览器窗口,或将其重新定向到其他地方,则上载将被终止

使用iframe并将其命名为:“myframe”。您可以轻松地将其隐藏在div中。使用action=“somefile.php”和target=“myframe”创建一个表单。将lil Javascript添加到表单的“文件”字段:onFocus=“uploadlistener()”。您可以随意命名此函数,但可以使用它检查用户是否“打开”了任何内容。浏览器将自动交换焦点,无论是用户单击“浏览”,还是用户随后打开文件。不同之处在于,在“选择”文件后,输入字段再次接收焦点,但请记住,您在“onFocus()”事件上有一个侦听器。因此:如果字段不是空的,则调用:document.uploadform.submit()

使用此方法,您甚至不需要提交按钮。如果您想对“浏览”按钮进行蒙皮,只需使用CSS使其透明即可,例如: 输入name=“myfile”type=“file”style=“width:40px;-moz不透明度:0;过滤器:alpha(不透明度=0)”onFocus=“somefunction”