На сколько мне известно $.ajax не умеет отправлять файлы
Попробуй вот так:
$(document).on('submit', '#user_files', function () {
var self = this;
var files = document.querySelector('input[type="file"]').files;
var formData = new FormData();
for (var i = 0, file; file = files[i]; ++i) {
formData.append(file.name, file);
}
var xhr = new XMLHttpRequest();
xhr.open('POST', $(self).attr("action"), true);
xhr.upload.onprogress = function (e) {
if (e.lengthComputable) {
if (((e.loaded / e.total) * 100) >= 100) {
alert("Загрузил!");
}
}
};
xhr.send(formData);
return false;
});
+ вариант с возможным прогрессбаром
$(document).on('submit', '#user_files', function () {
var self = this;
var files = document.querySelector('input[type="file"]').files;
var progress = $(".progress .bar");
var formData = new FormData();
for (var i = 0, file; file = files[i]; ++i) {
formData.append(file.name, file);
}
var xhr = new XMLHttpRequest();
xhr.open('POST', $(self).attr("action"), true);
xhr.upload.onprogress = function (e) {
if (e.lengthComputable) {
progress.css({"width": ((e.loaded / e.total) * 100) + "%"});
if (((e.loaded / e.total) * 100) >= 100) {
alert("Загрузил!");
}
}
};
xhr.send(formData);
return false;
});