2016-04-28 2 views
0

Я использую dropzone.js для загрузки на свой сайт. Загружающий файл имеет модальный формат, который я хочу автоматически закрыть, когда все файлы были загружены успешно.Определите, когда все файлы загружены успешно в dropzone.js

Для этого я использую следующий код:

buttonUpload.on("complete", function (file) { 

    var remaining = buttonUpload.getRejectedFiles().length + buttonUpload.getQueuedFiles().length + buttonUpload.getUploadingFiles().length 

    if (remaining == 0) { 
     $("#modal-upload-file").modal('hide'); 
    } 
}); 

Я ожидал бы этот код, чтобы сложить количество файлов, которые потерпели неудачу, еще не загружен и загрузки. Если это нулевое значение, то модально закрывается.

Я смог определить, что buttonUpload.getRejectedFiles() не включает файлы, получившие сообщение об ошибке при загрузке. Из чтения документации я не вижу возможности проверить, успешно ли загружен каждый файл, как я хочу. Как я могу это сделать?

+0

Существует событие вы можете слушать: http://www.dropzonejs.com/#event-queuecomplete –

+0

@ a.j. Это срабатывает, когда была сделана попытка для каждого файла, даже если сервер ответил на плохой статус http для некоторых из них. – freddinator

+0

Что делать, если вы считаете ошибочные файлы в полном обработчике, а затем в event-queuecomplete, проверьте, что это число> 0 –

ответ

0

Вот мое решение.

В случае успеха, файл удаляется из очереди:

buttonUpload.on("success", function(file) { 
    buttonUpload.removeFile(file); 
}); 

Затем, когда очередь будет завершена, если какие-либо файлы остаются они не были успешными.

buttonUpload.on("queuecomplete", function (file) { 
    if (buttonUpload.getAcceptedFiles().length > 0) { 
     $("#file-error-warning").slideDown(); 
    } else { 
     $("#modal-upload-file").modal('hide'); 
    } 
}); 
Смежные вопросы