我需要一些HTML5的帮助.我有一个脚本循环遍历所有上传的文件,并获取每个文件的详细信息.目前我正在使用包含FileReader的HTML5技术.FileReader功能仅适用于Chrome和Firefox,所以我正在寻找一种适用于所有其他浏览器的替代方案.
我在FileReader HTML 5 API中看到了Stack Overflow问题Flash替代方案,但是我无法想出如何使用这个Flash的东西,并且没有任何其他解决方案,所以我可以遍历所有上传的文件并获取每个文件详细信息(可在Safari和Internet Explorer中使用)?
最终根本没有使用 FileReader,而是循环遍历 event.files 并通过 files[i] 获取每个文件,并通过 XHR 使用 FormData 对象发送 AJAX 请求(对我有用,因为我决定不需要获取文件数据):
var xhrPool = {};
var dt = e.dataTransfer;
var files = (e.files || dt.files);
for (var i = 0; i < files.length; i++) {
var file = files[i];
// more code...
xhrPool[i] = getXMLHttpRequest();
xhrPool[i].upload.onprogress = uploadProgress;
initXHRRequest(xhrPool[i], i, file);
data = initFormData(i, file);
xhrPool[i].send(data);
}
function initFormData(uploaded, file) {
var data = new FormData();
data.append(uploaded, file);
// parameters...
return data;
}
function uploadProgress() {
// code..
}
function initXHRRequest(xhr, uploaded, file) {
// code... onreadystatechange...
xhr.open("POST", "ajax/upload.php");
xhr.setRequestHeader("X-File-Name", file.name);
}
function getXMLHttpRequest()
{
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else {
try {
return new ActiveXObject("MSXML2.XMLHTTP.3.0");
}
catch(ex) {
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11640 次 |
| 最近记录: |