如何阻止PHP制作Zip文件?

时间:2013-10-22 16:17:03

标签: php jquery ajax cakephp

好的,如果您需要我发布我的代码,我已经提出了,请告诉我。我不确定这是否可行。但我想做的是当用户选择取消按钮/链接时阻止PHP制作Zip文件。

现在我设置的是每个用户上传的所有文件都列在表单中,然后用户可以选择要压缩和下载的文件。选择文件并单击下载按钮后,通过Jquery AJAX调用更改持有表单的div,这样可以正常工作。

但我有一个'取消'/'停止'按钮/链接,这种方式有效。点击后,我在AJAX请求上调用.abort,然后加载新的HTML内容,说用户取消了zip进度。但是,所有消息都工作正常,似乎服务器仍然在后台制作zip,并且任何链接都不会响应(大多数也是加载新用户请求的AJAX请求),直到zip完成。

我的网站的基础是使用CakePHP框架。但我确信这只是标准的Jquery / PHP问题。

关于如何让我的AJAX请求阻止PHP制作zip的任何想法?

这就是我构建AJAX的方式:

 $(document).ready(function() {
  $(".MAKEMYZIP").click(function(e) {
    e.preventDefault();
      $('.DIV-HOLDER').load('/PAGE-PREVIEWER');
      var MakeNewZipFile = $.ajax({
        url: '/makezip',
        type: 'post',
        dataType:'html',   //expect return data as html from server
        data: $('.FILE_DATA').serialize(),
        success: function(response, textStatus, jqXHR){
          $('.DIV-HOLDER').html(response);   //select the id and put the response in the html
        },
        error: function(jqXHR, textStatus, errorThrown){
          console.log('error(s):'+textStatus, errorThrown);
        }
      }); //End of AJAX call 
             //Below line makes the 'text' link visible once the make zip but clicked.
    $('.ZipLinkHolder').css("visibility","visible");
    $( ".Can_Zip_This_Zip" ).click(function() {
        MakeNewZipFile.abort();
        $('.DIV-HOLDER').html('<br/><br/><div class="CenterTxt">User has canceled Zip making process.</div>');
    });
});

});

0 个答案:

没有答案