jQuery ajax进度事件
我正在使用jQuery$.ajax上传文件 如何获取进度事件,然后应用适当的设置 这是我的$.ajax:jQuery ajax进度事件,jquery,ajax,Jquery,Ajax,我正在使用jQuery$.ajax上传文件 如何获取进度事件,然后应用适当的设置 这是我的$.ajax: $.ajax({ url : "upload.php", type : "POST", data : formData, processData : false, contentType : false,
$.ajax({
url : "upload.php",
type : "POST",
data : formData,
processData : false,
contentType : false,
success : function(message, response){
document.getElementById("status").innerHTML = response;
}
})
我需要的是在上传过程中显示进度条。我应该如何做到这一点
注意:我不想假效果,这是把一个加载器,并成功地删除它,并显示正确的数据。我需要的是在上传过程中获取真实的progressData。这里是一个答案,请检查此文件是否满足php文件上传 让我们从编写HTML表单开始,它是进度条的元素,我们只需要对它们进行样式设置并将其转换为一个漂亮的进度条
<div id="upload-wrapper">
<div align="center">
<h3>Ajax Image Uploader with Progressbar</h3>
<span class="">Image Type allowed: Jpeg, Jpg, Png and Gif. | Maximum Size 1 MB</span>
<form action="processupload.php" onSubmit="return false" method="post" enctype="multipart/form-data" id="MyUploadForm">
<input name="ImageFile" id="imageInput" type="file" />
<input type="submit" id="submit-btn" value="Upload" />
<img src="images/ajax-loader.gif" id="loading-img" style="display:none;" alt="Please Wait"/>
</form>
<div id="progressbox" style="display:none;"><div id="progressbar"></div ><div id="statustxt">0%</div></div>
<div id="output"></div>
</div>
</div>
滑动分页
下面的函数捕获表单插件传递的参数,实时更改progressbar的宽度和文本
function OnProgress(event, position, total, percentComplete)
{
//Progress bar
progressbar.width(percentComplete + '%') //update progressbar percent complete
statustxt.html(percentComplete + '%'); //update status text
if(percentComplete>50)
{
statustxt.css('color','#fff'); //change status text to white after 50%
}
}
收尾
该脚本中的其他内容和Ajax图像上传相同,您应该在下面的示例文件中找到其余代码。这张纸条相当中级,祝你好运 我无法发表评论,因为我没有足够的代表,但请参见此处:[有趣…因此将我的答案转换为评论]看起来像是as的副本,这也表明了进展。我建议你为自己选择一个合适的用户名。所以,我真的不希望答案只是指向外部网站的链接,因为这样一来,SO内容就不会独立存在,并且在外部网站更改或消失时也不会有用。好吧,我当时正在下载并复制正在格式化要粘贴到此处的
$(document).ready(function() {
var options = {
target: '#output',
beforeSubmit: beforeSubmit,
uploadProgress: OnProgress, //upload progress callback
success: afterSuccess,
resetForm: true
};
$('#MyUploadForm').submit(function() {
$(this).ajaxSubmit(options);
return false;
});
});
function OnProgress(event, position, total, percentComplete)
{
//Progress bar
progressbar.width(percentComplete + '%') //update progressbar percent complete
statustxt.html(percentComplete + '%'); //update status text
if(percentComplete>50)
{
statustxt.css('color','#fff'); //change status text to white after 50%
}
}