【发布时间】: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