Php 使ajax上传在上传进度完成之前中止

Php 使ajax上传在上传进度完成之前中止,php,javascript,jquery,ajax,file-upload,Php,Javascript,Jquery,Ajax,File Upload,我有一个带有abort()的ajax文件上传表单;功能。单击“取消锚定”将触发: $('#cancel').click(function(){ ajaxFileUpload.abort(); $('#message').html('cancelled'); }); 当success函数返回'successfullyUploaded'时,此锚定将隐藏: if(response == 'successfullyUploaded') {$('#cancel').hide

我有一个带有abort()的ajax文件上传表单;功能。单击“取消锚定”将触发:

   $('#cancel').click(function(){ 
     ajaxFileUpload.abort();
     $('#message').html('cancelled');
 });
当success函数返回'successfullyUploaded'时,此锚定将隐藏:

if(response == 'successfullyUploaded') {$('#cancel').hide(); });

此时文件已上载,取消上载为时已晚。在大多数情况下,它工作得相当好。但是,如果有人在处理上载的php页面上的文件上载与包含接收成功数据的表单的页面之间的瞬间单击“取消”,则会显示“取消”,但实际上上载已完成。所以我想知道是否有某种方法可以检测文件上传何时完成,比如说,95%,并且在这一点上,隐藏“取消”锚。这有可能吗?谢谢

中止后,您可以向服务器发送第二个AJAX请求,告知上载已取消,并且上载的文件(如果存在)必须删除


当您收到来自第二个请求的成功响应时,您可以将#message设置为cancelled

是的,这是非常可能的,但我不认为这是最好的选择。成功上传和取回数据之间的时间间隔平均应为200毫秒。我个人不会担心这一点,但如果有必要,我会在单击“取消”按钮时发送另一个Ajax请求,以确保在“取消”上载之前上载尚未完成。我知道这看起来有点琐碎。我只是不喜欢这样的想法,即在不太可能发生的情况下,用户会得到我看到的错误信息。这有点难复制,否则我会更深入地看。一个有效的解决方案,我会考虑这一点。谢谢你的建议。