Я пытаюсь обнаружить дубликаты, чтобы дать пользователям возможность удалять файлы из окна загрузки, удаляя их из массива, на который я нажимаю. Теперь у меня возникли проблемы с загрузкой списка финализированных файлов. Я не думаю, что у моего массива есть фактические данные файла.File API, upload array of files
Вот как я создаю массив файлов:
var masterList = [];
function drop(evt) {
evt.stopPropagation()
evt.preventDefault();
var fileList = evt.dataTransfer.files; //Getting the file(s)
buildList(fileList); //Passing the file(s)
}
function buildList(fileList) {
//Detect duplicates by comparing incoming filenames and current list
var currentNames = _.pluck(masterList, 'name');
$.each(fileList, function(i, file) {
if ($.inArray(file.name, currentNames) == -1) {
masterList.push(file);
//is this pushing the file or have I lost the file handle } else {}
});
}
При взгляде на объект в masterList, он показывает:
File { name: "Logo.pdf",
lastModified: 1429803494000,
lastModifiedDate: Date 2015-04-23T15:38:14.000Z,
size: 1511129,
type: "application/pdf"
}
И это функция загрузки. Каждый файл в окне загрузки будет иметь своего собственного прогресс бар .:
function startUpload() {
if (masterList.length > 0) {
var finished = 0;
$.each(masterList, function(i, file) {
console.log(file); //Output above
var data = new FormData();
data.append('file', file); //<- This is not allowed
//Start Upload
$.ajax({
xhr: function() {
var xhr = new window.XMLHttpRequest();
//Upload progress
xhr.upload.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded/evt.total;
console.log(percentComplete);
}
}, false);
return xhr;
},
type: 'POST',
url: 'uploader.php',
data: data,
success: function(data) {
//Do something successful
}
}
});
});
}
}
В настоящее время я не могу получить файлы в FormData я создал и я не уверен, что это лучший способ, чтобы отправить доработанную группу на сервер.
Попробуйте упростить код, и указать точную проблему. Пробовали ли вы проверять данные перед отправкой запроса и не видели файл здесь, или вы не смогли получить файл на сервере? – tungd
Убрал код для ясности. Я не могу добавить список файлов в данные формы для загрузки. Он выходит из строя сразу после вывода указанного выше объекта File во время инструкции '.each()'. –