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


How to refresh current page after ajax upload complete

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

我试过了。

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

它有效!但是自从我上传了 3 个文件以来,它是 3 个好的弹出窗口。上传第三个文件后,我只需要一个"确定"警报。请指教。

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

这是演示。

你能添加一个计数吗?

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;
  } 
});

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

在页面上使用隐藏字段,例如<input type="hidden" id="hidUploadCount" value="0" />现在使用发送前功能来跟踪当前上传。如果上传计数正在进行中,则使用完整功能重新加载页面为 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
  }
  }
});