// 使用jQuery实现Ajax文件上传进度显示
function uploadFileAjax(file) {
var formData = new FormData(); // 创建FormData对象用于封装文件数据
formData.append('file', file); // 将文件添加到FormData对象中
$.ajax({
url: '/upload/path', // 服务器端接收文件的路径
type: 'POST',
data: formData,
processData: false, // 告诉jQuery不要处理发送的数据
contentType: false, // 告诉jQuery不要设置Content-Type请求头
xhr: function() { // 自定义XMLHttpRequest
var xhr = $.ajaxSettings.xhr();
if (xhr.upload) {
xhr.upload.addEventListener('progress', function(event) {
if (event.lengthComputable) {
var percentComplete = event.loaded / event.total; // 计算百分比
// 可以在这里更新进度条或者显示提示信息
console.log(percentComplete); // 输出百分比
}
}, false);
}
return xhr;
}
});
}
// 假设有一个文件输入框,当选择文件后触发上传
$('#fileInput').on('change', function() {
var file = this.files[0]; // 获取文件
if (file) {
uploadFileAjax(file); // 调用函数开始上传
}
});
这段代码展示了如何使用jQuery和FormData对象实现文件的Ajax上传,并且在上传过程中监听进度并输出百分比。这是一个基本的文件上传进度显示的例子,可以根据实际需求进行扩展和应用。