【问题标题】:XHR upload and the moment the upload beginsXHR 上传和上传开始的那一刻
【发布时间】:2013-05-21 07:49:29
【问题描述】:

我正在尝试在使用 XHR 启动上传时找到一种方法,以便我可以做一些事情;我环顾四周,读到.loadstart 是在请求​​开始时使用的(这意味着什么?),这就是我所拥有的:

function processUpload(file, postName, onLoadCallback, onErrorCallBack, onProgressCallBack, startCallBack)
{    
    var xhr = new XMLHttpRequest();
    var fD = new FormData();

    for(var i = 0; i < file.length; i++)
    {
        xhr.open("POST", "PATHHERE");

        xhr.loadstart = startCallBack;

        xhr.onload =  onLoadCallback;

        xhr.onerror = onErrorCallBack;

        xhr.upload.onprogress = onProgressCallBack;

        fD.append(postName, file[i]);
        xhr.send(fD);
    }
}

另外,我不确定 for 循环是否是进行多个文件上传的最佳方式。我觉得这在网站上可能会变得很重。这样做的更好方法是什么?

【问题讨论】:

  • 你忘了问问题
  • 一遍又一遍地重新分配处理程序是没有意义的;它是同一个对象,所以它们在迭代之间不会改变。但是,主要是您的问题是并非所有浏览器都支持这些事件,并且您没有为“readystatechange”事件分配处理程序。此外,您一遍又一遍地使用同一个 XHR 对象,这是根本错误的。
  • 酷,我不知道!感谢您的提醒。至于“readystatechange”是什么意思?
  • 那么什么是最新的。最好能进一步解释你在说什么。

标签: javascript file-upload xmlhttprequest


【解决方案1】:

当您调用 send 时请求开始。您可能希望将文件排队以限制并发上传。看看已经存在的file uploader 实现。

如果您想编写自己的 html5 上传器,请查看 source code

【讨论】:

  • 发送函数有回调吗?
猜你喜欢
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 2013-07-07
  • 1970-01-01
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多