【发布时间】:2020-04-17 11:19:33
【问题描述】:
我正在使用 jQuery 和 Ajax 上传文件,并且我还有一个进度条来显示上传进度。一切都很好,除了我希望这个进度条只有在上传进度开始时才出现,而不是在我从 Laravel 控制器收到验证错误时出现。我该怎么做?
这是我的代码:
$('[type="file"]').change(function () {
var formData = new FormData();
formData.append('video', $(this)[0].files[0]);
$.ajax({
url: '/url',
type: 'POST',
cache: false,
processData: false,
contentType: false,
data: formData,
headers: {
'X-CSRF-TOKEN': $('[name="csrf-token"]').attr('content')
},
xhr: function () {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener('loadstart', function () {
$('#progressbar').fadeIn(100);
});
xhr.upload.addEventListener('progress', function (e) {
if (e.lengthComputable) {
var percentageComplete = (e.loaded / e.total) * 100;
$('#progressbar span').css('width', percentageComplete + '%');
}
});
return xhr;
},
success: function (response) {
if (response.status == 'error') {
$(this).parent().append('<p class="text-danger" role="alert">' + response.message + '</p>');
} else {
//
}
}
});
});
【问题讨论】:
标签: jquery ajax laravel progress