Я успешно реализовал загрузку структур каталогов с помощью Fine Uploader с помощью параметра dragAndDrop: reportDirectoryPaths. Каждый загруженный файл имеет свойство qqpath, чтобы обозначать путь, из которого он пришел.Можно ли загружать файлы * последовательно * через AJAX?
var exampleUploader = new qq.FineUploader({
element: document.getElementById('fine-uploader'),
template: 'qq-template-manual-trigger',
request: {
endpoint: '/api/UploadDocuments',
params: {
param1: "Test1",
param2: "Test2"
}
},
callbacks: {
onComplete: function (id, name, responseJSON, xhr) {
console.log("onComplete");
},
onAllComplete: function (id, name, responseJSON, xhr) {
console.log("onAllComplete");
}
},
multiple: true,
dragAndDrop: {
reportDirectoryPaths: true
},
autoUpload: true,
debug: false
});
Существует, однако, одна проблема: файлы загружаются один на один, но запрос Ajax называют иногда в то же самое время. Если два файла с одинаковой структурой каталогов будут переданы службе в то же самое время, каталоги могут быть созданы дважды за один раз. Есть ли способ сделать только запрос ajax для успеха предыдущего? Другими словами, есть ли способ загрузить файлы последовательно, а не в одно и то же время (целая куча файлов, передаваемых сразу в службу)?
Заранее спасибо, А.Я.
уверен, просто есть 'success' обработчик самого вызова вызова ajax (например, рекурсия). поэтому вызов # 1 загружает файл # 1. когда этот вызов возвращается, он снова вызывает себя и запускает файл №2 и т. д., с другой стороны, это может быть неэффективным/медленным, поскольку вы выполняете отдельную загрузку HTTP для каждого файла. вы можете просто включить данные последовательности с файлами, чтобы сервер мог определить, что это такое. например 'File1 = SOMETEXT; file2 = othertext', и прислужьте искомый номер из имени: 'file1' ->' 1', "ah, это первый файл, создайте каталог # 2", затем "ah, это файл 2, поэтому создайте directory # 1 " –
Вы пытались сделать это с помощью Fine Uploader или знакомы с этим элементом управления? – ajh