如何在ajax上传完成后刷新当前页面

时间:2014-12-28 15:07:26

标签: javascript php jquery ajax image-uploading

我正在研究JS Ever ajax多图像上传器。它真的很棒,但有一件事。所有文件完成上传后我需要重新加载工作页面。是的,在上传文件后可以执行某项操作:成功完成完成。但是这些回调是按文件进行的。这意味着如果我添加一个重载功能。第一个文件上传完成后,页面将立即重新加载。

我试过了。

complete:function(file,xhr){alert("ok")}

有效!但是自从我上传了3个文件以来,这是3个好的弹出窗口。上传第3个文件后,我只需要一个“OK”警报。请建议。

$('#uploader').JSAjaxFileUploader({
    uploadUrl: 'upload.php',
    complete: function (file, xhr) {
        $(alert("ok"));
    }
});

This is the DEMO.

3 个答案:

答案 0 :(得分:1)

你能加点数吗?

var count = 0;
var length;

$('#uploader').JSAjaxFileUploader({
  uploadUrl: 'upload.php',
  complete: function (file, xhr) { 
    if ( count === 0 ) {
      length = $('.JSpreveiw li').length;
    }      
    if ( count === length - 1 ) {
      alert('thanks for uploading!');
      window.location.reload();
    }
    count += 1;
  } 
});

答案 1 :(得分:0)

如果有可能获得上传的文件数量,您可以在“完整”回调中创建一个增加数字的函数。当该数字等于您的文件数量时,显示警报并刷新页面。

答案 2 :(得分:0)

在页面上使用隐藏字段,例如<input type="hidden" id="hidUploadCount" value="0" /> 现在使用功能 beforesend 来跟踪当前上传。如果正在上传的计数为0,则使用完整功能重新加载页面,即

$('#uploader').JSAjaxFileUploader({
  uploadUrl: 'upload.php',
  beforesend:function(){       
    document.getElementById('hidUploadCount').value+=document.getElementById('hidUploadCount').value;
  },
  complete: function (file, xhr) {
     document.getElementById('hidUploadCount').value-=document.getElementById('hidUploadCount').value;
  if(document.getElementById('hidUploadCount').value)==0)
  {
    alert("ok");//here u can reload the page
  }
  }
});