【发布时间】:2013-02-24 23:50:53
【问题描述】:
我有一个上传表单,它在使用 AJAX 上传文件时显示状态栏。上传完成后,我希望用户知道,但完成后什么也没有发生,但我告诉它提醒“完成”。
我的代码:
UploadB.click(function(event)
{
event.preventDefault();
event.stopPropagation();
var FInput = $('#Files').val();
if(FInput != '')
{
var Data = new FormData();
var Files = document.getElementById('Files');
for(var I = 0; I < Files.files.length; ++I)
{
var FilesName = Files.files[I].name;
Data.append('File[]', Files.files[I]);
}
var Request = new XMLHttpRequest();
Request.upload.addEventListener('progress', function(event)
{
if(event.lengthComputable)
{
Percent = event.loaded / event.total;
Progress = document.getElementById('Progress');
Loaded = Math.round(Percent * 100);
$('#Progress').progressbar({
value: Loaded
});
}
else
{
$('#Progress').text('There Was An Error Getting The Percent');
}
});
Request.upload.addEventListener('load', function(event)
{
});
Request.upload.addEventListener('error', function(event)
{
alert('Upload Failed.');
});
Request.upload.addEventListener('readystatechange', function(event)
{
if(this.readyState == 4)
{
if(this.status == 200)
{
alert('Done.');
}
else
{
alert('There Was An Error, Either Try Again Or Contact Us');
}
}
});
Request.open('POST', 'Upload.php');
Request.setRequestHeader('Cache-Control', 'no-cache');
Progress.style.display = 'block';
Request.send(Data);
}
else
{
alert('Please Select A File / Files');
}
});
【问题讨论】:
-
假设您的请求确实有效...尝试移动您的 readystatechange 侦听器并将其放在打开并发送数据的代码块之前。
-
我之前有过这个,然后我认为它会起作用。
-
但还是不行。
-
一切正常。并且文件被上传,但它不会提醒
-
您的请求有效吗?而且,readystatechange 会执行吗?如果是,请检查 readyState 和 status 值。
标签: php javascript jquery ajax xmlhttprequest